Python 用于在目录中搜索特定文件类型然后将它们的内容附加在一起的脚本
Python script to search directory for certain file type then append their contents together
我正在尝试制作一个 python 脚本,该脚本将在一个目录中搜索以名为 .math 的特定文件扩展名结尾的所有文件(基本上是一个包含数字的文本文件)。
我将如何处理?
假设我有文件 hello.math、hello2.math 和 goodbye.math
假设 hello.math 有 10 个,hello2.math 有 3 个,goodbye.math 有 0 个。
我希望脚本搜索当前目录中的所有 .math 文件,然后将它们加起来。
所以不确定您是要递归搜索目录结构,还是只列出一个目录中的文件。这应该让你继续。
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 名称条件中你需要选择 single_dir 或递归函数,并指定路径入口点(如 /dir 或 C:\dir 或其他).如果文件中有除 int 之外的任何内容,sum_file_contents 将失败。尽管您的示例说明这就是您要查找的内容。
总之,如果你在提问之前试一试就好了。我认为整个社区不是来为您编写代码的,而是在您遇到困难时为您提供帮助。这是一个超级简单的问题。如果您 google 在一个目录中找到文件,我敢打赌肯定会有几十个答案,这至少会给您一个代码示例的基础。然后你可以说我可以像这样找到我的 .math 文件,我如何对它们求和?您也可以简单地找到答案。请注意,我并不是要对这一段无礼。
注意:我没有测试这段代码
我正在尝试制作一个 python 脚本,该脚本将在一个目录中搜索以名为 .math 的特定文件扩展名结尾的所有文件(基本上是一个包含数字的文本文件)。
我将如何处理?
假设我有文件 hello.math、hello2.math 和 goodbye.math
假设 hello.math 有 10 个,hello2.math 有 3 个,goodbye.math 有 0 个。
我希望脚本搜索当前目录中的所有 .math 文件,然后将它们加起来。
所以不确定您是要递归搜索目录结构,还是只列出一个目录中的文件。这应该让你继续。
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 名称条件中你需要选择 single_dir 或递归函数,并指定路径入口点(如 /dir 或 C:\dir 或其他).如果文件中有除 int 之外的任何内容,sum_file_contents 将失败。尽管您的示例说明这就是您要查找的内容。
总之,如果你在提问之前试一试就好了。我认为整个社区不是来为您编写代码的,而是在您遇到困难时为您提供帮助。这是一个超级简单的问题。如果您 google 在一个目录中找到文件,我敢打赌肯定会有几十个答案,这至少会给您一个代码示例的基础。然后你可以说我可以像这样找到我的 .math 文件,我如何对它们求和?您也可以简单地找到答案。请注意,我并不是要对这一段无礼。
注意:我没有测试这段代码