我使用Python 2.7在Ubuntu。 因为我有这样的创建成TXT苍蝇分裂秒的数字的脚本我怎么排序更详细顺序文件。 我国防部一个脚本,它可以找到的最古老和最年轻的文件,但它看起来像它只是第二,但不是毫秒进行比较。
我的打印输出:
output_04.txt 06/08/12 12:00:18
output_05.txt 06/08/12 12:00:18
-----------
oldest: output_05.txt
youngest: output_05.txt
-----------
但最早的文件的正确顺序应该是“output_04.txt”。 任何专业知识知道吗? 谢谢!
更新 :谢谢大家。 我也尝试了所有的代码,但似乎不能有输出,我需要。 对不起球员,我也感谢大家。 但是,我的文件,如上面的例子具有相同的时间,因此,如果满日期,小时,分钟,秒都是一样的,它必须通过毫秒比较。 不是吗? 如果我错了纠正我。 感谢大家! 干杯!
您可以使用os.path.getmtime(path_to_file)
来获取文件的修改时间。
排序文件列表的一种方法是创建它们的一个列表os.listdir
,并得到每个人的修改时间。 你将有一个元组列表,你可以由元组(这将是修改时间)的第二个元素订购。
您还可以检查的分辨率os.path.getmtime
与os.stat_float_times()
如果真后者返回然后os.path.getmtime
返回一个浮点数(这表示你比秒更高的分辨率)。
def get_files(path):
import os
if os.path.exists(path):
os.chdir(path)
files = (os.listdir(path))
items = {}
def get_file_details(f):
return {f:os.path.getmtime(f)}
results = [get_file_details(f) for f in files]
for result in results:
for key, value in result.items():
items[key] = value
return items
v = sorted(get_files(path), key=r.get)
get_files
需要path
作为参数,如果path
存在,改变当前目录的路径和文件列表生成。 get_file_details
债收益率最后修改时间的文件。
get_files
返回与文件名作为密钥的字典,改性时间值。 然后在标准sorted
被用于排序的值。 reverse
参数可被传递给排序升序或降序。
因为没有这样的信息,你不能比较的毫秒。
静(2)调用返回三个time_t的领域: - 访问时间 - 创建时间 - 最后修改时间
time_t的是表示的秒(不毫秒)1970年1月1日UTC的数量自00:00过去时,一个整数。
所以,你可以有最大的细节文件的时间是秒。 我不知道,如果一些文件系统提供更高的分辨率,但是你必须要在C特定的调用,然后编写包装在Python中使用它们。
HI尝试下面的代码
# retrieve the file information from a selected folder
# sort the files by last modified date/time and display in order newest file first
# tested with Python24 vegaseat 21jan2006
import os, glob, time
# use a folder you have ...
root = 'D:\\Zz1\\Cartoons\\' # one specific folder
#root = 'D:\\Zz1\\*' # all the subfolders too
date_file_list = []
for folder in glob.glob(root):
print "folder =", folder
# select the type of file, for instance *.jpg or all files *.*
for file in glob.glob(folder + '/*.*'):
# retrieves the stats for the current file as a tuple
# (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)
# the tuple element mtime at index 8 is the last-modified-date
stats = os.stat(file)
# create tuple (year yyyy, month(1-12), day(1-31), hour(0-23), minute(0-59), second(0-59),
# weekday(0-6, 0 is monday), Julian day(1-366), daylight flag(-1,0 or 1)) from seconds since epoch
# note: this tuple can be sorted properly by date and time
lastmod_date = time.localtime(stats[8])
#print image_file, lastmod_date # test
# create list of tuples ready for sorting by date
date_file_tuple = lastmod_date, file
date_file_list.append(date_file_tuple)
#print date_file_list # test
date_file_list.sort()
date_file_list.reverse() # newest mod date now first
print "%-40s %s" % ("filename:", "last modified:")
for file in date_file_list:
# extract just the filename
folder, file_name = os.path.split(file[1])
# convert date tuple to MM/DD/YYYY HH:MM:SS format
file_date = time.strftime("%m/%d/%y %H:%M:%S", file[0])
print "%-40s %s" % (file_name, file_date)
希望这将有助于
谢谢