使用python从文件夹中读取文件

时间:2015-09-28 12:31:24

标签: python

我正在尝试读取目录中的所有文件。

for root, dirs,files in os.walk(path):
        for j in files:
            print(str(j))

这是我的代码,其中path是要读取的目录的路径。但它不按名称的顺序打印文件。在我的情况下,我有0.txt1.txt,......到3590.txt的文件。我希望它以相同的顺序打印文件。而是从579.txt开始。我怎样才能解决这个问题?我想以相同的顺序对文件进行一些计算,因此只需将名称存储在列表中并对其进行排序就无济于事。

2 个答案:

答案 0 :(得分:4)

如何使用lambda对它们进行排序以在文件名中使用int:

for root, dirs,files in os.walk(path):
    for j in sorted(files, key=lambda key: int(key.replace(".txt", ""))):
        print(str(j))

答案 1 :(得分:0)

由于文件名结构/// <returns>false if the file does not exists, true otherwise.</returns> public static bool TryOpenFileStreamIfExists(string filePath, FileAccess fileAccess, FileShare fileShare, out FileStream fs, FileOptions fileOptions = FileOptions.None) { try { if (!File.Exists(filePath)) { fs = null; return false; } fs = new FileStream(filePath, FileMode.Open, fileAccess, fileShare, short.MaxValue, fileOptions); return true; } catch (FileNotFoundException) { fs = null; return false; } } 类似,因此我们可以按数字排序。

<强>演示

$Number$.txt