python-3.x - 为特定文件扩展名搜索目录并执行求和以将其内容添加在一起的后续操作
问题描述
这是我上一篇文章的后续。本质上,这个想法是将所有以 .math 结尾的文件的内容添加到 /home/pi/math 中。目录。目前我有 3 个文件:test.math、hello.math、hi.math - 它们都至少有 1.00。问题是 1. 它似乎没有正确读取文件的内容,也没有添加它们。
这个想法是它将添加这 3 个文件(最终我想将它们添加到一个变量中)并显示总数。请注意,我确实想包括花车。
import os
srcdir = "/home/pi/math/"
files = os.listdir(srcdir)
def sum_file_contents():
value = float()
for file in srcdir:
if file.endswith(('math')):
value += float(open(file, "r").read().strip())
return value
for file in files:
if file.endswith(('math')):
print(file)
print(sum_file_contents())
输出
test.math
0.0
hello.math
0.0
hi.math
0.0
解决方案
您的主for
循环遍历files
来自 的os.listdir(srcdir)
,但随后您sum_file_contents()
尝试再次执行相同的操作,只是它以字符串的形式遍历srcdir
,这自然不会为您提供目录列表。主for
循环是多余的,你应该通过在迭代它时sum_file_contents()
调用来简单地修复它:os.listdir()
import os
srcdir = "/home/pi/math/"
def sum_file_contents():
value = float()
for file in os.listdir(srcdir):
if file.endswith(('math')):
value += float(open(os.path.join(srcdir, file), "r").read().strip())
return value
print(sum_file_contents())
推荐阅读
- javascript - jQuery - 两个 .on('change') 事件不能同时工作。一次仅适用于每个
- maven - “莫名其妙”的maven返回状态码:什么会导致maven返回1?
- stm32 - 如何更改 usart 中断(HAL)中的全局变量(stm32f407)
- c++ - 为什么每次我编辑任何副本时,我在不同文件夹中的所有 CMakelist.txt 文件都会被覆盖?
- python - Sympy 的精确解决方案
- android - RecyclerView 中的 Android ViewPager
- java - 在这种情况下,对于我的 UML 图,我的依赖关系是否应该从类到接口或类到具体类型?
- reactjs - 将参数从子功能组件传递给父类组件
- java - Android / Firebase 项目显示错误:“没有为此项目定义组件”
- irony - Irony - SampleExpressionEvaluator 1.0 - “iff”符号在哪里定义?