我正在尝试制作一个python脚本,该脚本将在目录中搜索所有以特定文件扩展名.math结尾的文件(基本上是其中包含数字的文本文件)。
我该怎么做?
假设我有hello.math,hello2.math和goodbye.math文件
让我们说hello.math有10个,hello2.math有3个,goodbye.math有0个。
我希望脚本在当前目录中搜索所有.math文件,然后对其进行汇总。
答案 0 :(得分:1)
因此不确定是否要递归搜索目录结构,还是只列出一个目录中的文件。这应该可以帮助您。
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())
有些事情...。首先,在条件名称条件中,您需要选择single_dir或递归函数,并指定路径入口点(例如/ dir或C:\ dir或其他名称)。如果文件中除了int以外的任何内容,sum_file_contents都会失败。尽管您的示例说明了这就是您想要的。
总而言之,如果您在提出问题之前先尝试一下,那就太好了。我认为整个社区不是在为您编写代码,而是在遇到困难时为您提供帮助。这是一个非常简单的问题。如果您在google中找到目录中的文件,我敢打赌,实际上有数十种答案,这至少可以为您提供代码示例的基础。然后您可以说我可以找到我的.math文件,我该如何对它们进行汇总?您可能也可以找到答案。请注意,我不会对本段不礼貌。
注意:我没有测试这段代码