如何在Python中获取目录中文件名列表

3

问题:

在我的"D:/collection"文件夹中,我有两种类型的文件,分别是以"8位数字_类型.dbf"和"字符_类型.dbf"为后缀的文件,如下所示: 00093282.dbf, 00345602.dbf, 69209340.dbf, 69806980.dbf, 92406482.dbf, 93609360.dbf,..., aaa.dbf, bbb.dbf,....

目标:

我想要仅选择"8位数字_类型.dbf"的文件,并从我的分析中排除"字符_类型.dbf"的文件。我不关心"字符_类型.dbf"的文件。然后,我想将这8个数字拆分成两个4位数值。因此,一个名为list.txt的列表文件应该如下所示:

0009 3282
0034 5602
6920 9340
6980 6980
9240 6482
9360 9360
....

这些值应该以字符类型存储。

我该如何在Python中实现?谢谢。

真诚地, Bill TP

2个回答

3
>>> import os
>>> paths = ['00093282.dbf', '00345602.dbf', '69209340.dbf', '69806980.dbf', '92406482.dbf', '93609360.dbf','aaa.dbf', 'bbb.dbf']
>>> for path in paths:
        file_name,ext = os.path.splitext(path)
        if file_name.isdigit():
            print '{0} {1}'.format(file_name[:4],file_name[4:])


0009 3282
0034 5602
6920 9340
6980 6980
9240 6482
9360 9360

1
如果你打算替他完成所有工作的话,不妨给他 os.listdir(path)。 :-) - jedwards
我会把这个留给原帖作者,因为这样测试起来更容易 :D - jamylak
谢谢,伙计们。还有一个问题:打印不会生成包含打印值的文本文件。我想知道如何将这些值写入文本文件(比如说,mylistout.txt)。 - Bill TP

1
使用 jamylak 的解决方案来使用 os.listdir(path),只需将导入语句 from os import listdir 放在第二行,并将路径声明更改为 paths = listdir('D:/')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接