原文答案:
import os
for filename in os.listdir("/path/to/dir/"):
if filename.endswith(".asm") or filename.endswith(".py"):
# print(os.path.join(directory, filename))
continue
else:
continue
以上答案的Python 3.6版本,使用OS
-假设在名为directory_in_str
的变量中有作为str
对象的目录路径:
import os
directory = os.fsencode(directory_in_str)
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith(".asm") or filename.endswith(".py"):
# print(os.path.join(directory, filename))
continue
else:
continue
或者使用pathlib
:
from pathlib import Path
pathlist = Path(directory_in_str).glob('**/*.asm')
for path in pathlist:
# because path is object not string
path_in_str = str(path)
# print(path_in_str)
from pathlib import Path
pathlist = Path(directory_in_str).rglob('*.asm')
for path in pathlist:
# because path is object not string
path_in_str = str(path)
# print(path_in_str)
如何仅在目录中迭代文本文件?到目前为止,我所拥有的是; 这是可行的,但是我必须将.py文件存储在同一个目录(文件夹)中才能使其运行,因此迭代包含了.py文件本身。理想情况下,我想指挥的是:; “查看此子目录/文件夹,并循环访问其中的所有文件” 或。。。 我确信我要求的东西相当直截了当,但我不知道如何继续。可能值得我强调的是,我通过反复试验获得了glob模块,因此,如果这是绕过此特定方法的错误方法,
干杯大家, 我需要python 3.6的帮助。所以我有这样的数据结构: 我目前正在主目录所在的目录下工作,所以我不需要在此之前指定路径。首先,我想遍历主目录,找到所有子目录。然后我想在他们每一个人身上找到。wav文件,当处理完这些文件后,我想转到下一个子目录,以此类推,直到它们都被打开。处理wav文件。这正是我想做的。wav文件被输入到我的程序中,处理它们,这样我就可以把它们转换成numpy数组,
问题内容: 我需要遍历给定目录内的所有文件并对它们执行一些操作。 如何有效地做到这一点? 问题答案: 原始答案: 上面答案的Python 3.6版本,使用-假设你将目录路径作为str对象包含在名为的变量中: 或递归地使用:
我想从一个目录下从某些字母开始的所有文件中提取数据。如上所示,当我遍历目录并打印每个符合的文件名时,我得到一列文件名(字符串)。同时,工作得非常好。但是,运行以下代码只会返回错误。为什么找不到文件?我该怎么做才能解决这个问题?
问题 你想在一个固定长度记录或者数据块的集合上迭代,而不是在一个文件中一行一行的迭代。 解决方案 通过下面这个小技巧使用 iter 和 functools.partial() 函数: from functools import partial RECORD_SIZE = 32 with open('somefile.data', 'rb') as f: records = iter(p
问题内容: 如果要查找两个目录树之间的差异,通常只执行: 这将准确输出相应文件之间的区别。我只想获取内容不同的相应文件的列表。我以为这只是将命令行选项传递给的问题,但是我在手册页上找不到任何内容。 有什么建议么? 问题答案: 您说过Linux,所以您很幸运(至少它应该可用,不确定何时添加): 应该做你所需要的。 如果您还想查看两个目录中可能不存在的文件的差异,请执行以下操作: