此问题已在此处找到答案:
来自os.listdir()的非字母数字列表顺序(13个答案)
两天前关门了。
我使用的代码读取给定目录中的每个文本文件:
# Import Module
import os
# Folder Path
path = "Enter Folder Path"
# Change the directory
os.chdir(path)
# Read text File
def read_text_file(file_path):
with open(file_path, 'r') as f:
print(f.read())
# iterate through all file
for file in os.listdir():
# Check whether file is in text format or not
if file.endswith(".txt"):
file_path = f"{path}\{file}"
# call read text file function
read_text_file(file_path)
问题是,它不是按时间顺序读取每个数据文件(data1.txt、data2.txt、data3.txt等),而是以一种非常奇怪的方式读取每个文件(data1.txt、data10.txt、data101.txt、data2.txt等)。
它为什么要这样做,我该怎么解决?
2条答案
按热度按时间0vvn1miw1#
如果需要特定订单,请使用此选项:
rjzwgtxy2#
python文档没有对文件返回的顺序进行任何区分。更糟糕的是,它可能因实现和操作系统的不同而有所不同。
如果要确保文件按时间顺序排列,可以使用
os.lstat
在每个文件上。