我正在尝试编写一个python脚本,它将在一个目录中搜索以名为.math的特定文件扩展名结尾的所有文件(基本上是一个包含数字的文本文件)。
我该怎么做呢?
假设我有文件hello.math、hello2.ath和goodbye.math
假设hello.math有10,hello2.ath有3,goodbye.math有0。
我希望脚本搜索当前目录中的所有.math文件,然后对它们求和。
发布于 2018-08-03 05:06:53
所以不确定是要递归搜索整个目录结构,还是只列出一个目录中的文件。这应该能让你振作起来。
import os
MATH_FILES = list()
def single_dir(name)
global MATH_FILES
names = [os.path.join(name, item) for item in os.listdir(name)]
for name in names:
if ".math" in name and os.path.isfile(name):
print("%s has .math in the name" % name)
MATH_FILES.append(name)
def recursive(name):
global MATH_FILES
if ".math" in name and os.path.isfile(name):
print("%s has .math in the name" % name)
MATH_FILES.append(name)
try:
names = [os.path.join(name, item) for item in os.listdir(name)]
for name in names:
recurse(name)
except:
# Can't listdir() a file, so we expect this to except at the end of the tree.
pass
def sum_file_contents():
value = int()
for file in MATH_FILES:
value += int(open(file, "r").read().strip())
return value
if __name__ == "__main__":
# Choose implemntation here
# recursive("<insert base path here>")
# single_dir("<insert base path here>")
print(sum_file_contents())
所以有些事情...首先,在if name条件中,您需要选择目录或递归函数,并指定路径入口点(如/dir或C:\ single_dir等)。如果文件中存在除int以外的任何内容,则sum_file_contents将失败。尽管您的示例说明这就是您要查找的内容。
总而言之,如果你在提出问题之前先试一试,那将是很好的。我认为整个社区不是来为你写代码的,而是在你遇到困难时帮助你的。这是一个超级简单的问题。如果你用谷歌搜索一个目录中的文件,我敢打赌,字面上有几十个答案,这至少会给你一个代码示例的基础。然后你可以说我可以像这样找到我的.math文件,我如何对它们求和?你可能也能找到这个简单的答案。请注意,我并不是想对这段话太粗鲁。
注意:我没有测试这段代码
https://stackoverflow.com/questions/51661506
复制相似问题