2024-06-12 06:52:32 发布
网友
我有一个文件夹,里面有一些扩展名为“LRZ\u OA\u 12115.txt”的文件。我有上百个这样名字的档案。任务如下: i) 我想按数字顺序访问每个文件。例如,我希望在LRZ\u OA\u 12116之前有LRZ\u OA\u 12115。 ii)我想访问并阅读本部分:文件夹中每个文件的12115(不是字母表)。你知道吗
我会很感激你的回答。你知道吗
谢谢。你知道吗
我的建议是:
import os the_dir = "/path/to/your/files" print(sorted(os.listdir(the_dir),key = lambda x: int(os.path.splitext(x)[0]) if os.path.splitext(x)[0].isdigit() else 0))
它根据名称部分(没有扩展名)的数字值对目录列表进行排序,检查此部分是否为数字,以避免在转换为整数时出现异常(其他名称-如果有的话-保留在开始处,不进行排序)
可以使用Python标准库中的os和os.path函数。你知道吗
for filename in sorted(os.listdir('<your-directory>')): name, _ = os.path.splitext(filename) # do something with name
正如Jean-Francois Fabre所指出的,这给出了lexicographic order(12115在12116之前,但是2在10之前)而不是严格的数字顺序。如果需要后者,请修改如下代码:
sort_key = lambda x: int(os.path.splitext(x)[0]) if os.path.splitext(x)[0].isdigit() else 0 for filename in sorted(os.listdir('<your-directory>'), key=sort_key): ...
请执行以下操作:
import os, glob files = sorted(glob.glob(path + '*.txt'), key=os.path.basename)
例如,您可以这样做:
files = sorted(glob.glob('*.txt'), key=lambda name: int(os.path.splitext(name)[0]))
我的建议是:
它根据名称部分(没有扩展名)的数字值对目录列表进行排序,检查此部分是否为数字,以避免在转换为整数时出现异常(其他名称-如果有的话-保留在开始处,不进行排序)
可以使用Python标准库中的os和os.path函数。你知道吗
正如Jean-Francois Fabre所指出的,这给出了lexicographic order(12115在12116之前,但是2在10之前)而不是严格的数字顺序。如果需要后者,请修改如下代码:
请执行以下操作:
例如,您可以这样做:
相关问题 更多 >
编程相关推荐