我是python的新手。
我正在尝试编写一个程序,该程序将从.txt文件读取文件。
(这意味着我有一个" filenames.txt"文件,并且在该文件中有文件名及其路径)
如何从该.txt文件中读取这些文件名并获取文件创建日期?
这是我想出的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import sys, os
import pathlib
# list of filenames with their paths separated by comma
file_list = []
# input file name which contains list of files separated by
with open ('filenames.txt' , 'r+' ) as f :
list_file = f.readlines().splitlines()
input_list = file_list + list_file
def file_check(input_list):
if input_list is none:
print ("input_list is null")
print (input_list)
提前致谢。
需要更多信息,该文本文件中列出了哪种文件?"读"是什么意思? 如果他们
您可以在这里阅读,尝试编写自己的代码,并询问是否发现任何错误或意外输出,因为没有其他人提出过类似的问题。
@CapnJack我有一个filenames.txt文件,其中包含如下文件。 c / users / ......... file1.txt c / users / ......... file2.txt c / users / ......... file3.txt我想要 我的程序使用这些文件路径读取这些文件并返回每个文件中的行数。
抱歉,我正在尝试编辑不小心提交的原始评论时打了个电话,所以我现在无法解决。 但是我想问:我可以假定此文本文件中的所有文件都是其他文本文件吗?
是的,filenames.txt中的所有文件都是文本文件。
通过这个你可以打开一个文件:
1file = open('path/to/filenames.txt')
假设数据每行写一个文件名,您可以像这样从文件中读取:
1filename = file.readline()
然后,为了知道创建时间,可以使用import os并使用stat函数。此函数将告诉您st_atime是最后访问时间,st_mtime是最后修改时间,而st_ctime是创建时间。在这里看看:
1
2
3import os
stat = os.stat(filename)
creation_time = stat.s_ctime
要在文件名末尾省略空格,可以使用rstip。
因此,总共看起来像这样:
1
2
3
4
5
6
7
8import os
file = open('path/to/filenames.txt')
filename = file.readline()
while filename:
stat = os.stat(filename.rstrip())
creation_time = stat.st_ctime
print(creation_time)
filename = file.readline()
非常感谢您的帮助,但这是代码附带的输出。 1538435352.7896326 1538176072.1286607 1538494272.3550172
如果您想使时间可读,则应设置时间格式。 在这里看看解决方案:stackoverflow.com/questions/39359245/
您可以使用以下方法检查文件创建时间:
1
2import os, time
time.ctime(os.path.getctime('your_full_file_path'))
如果它们采用以下格式:每行的[文件名] [路径]我建议以下内容:
1f = open('filenames.txt', 'r').read().splitlines()
这将从文件中读取,然后将其分成几行
1f = [x.split(' ') for x in f]
这是迭代f的一种简便方法,f是一个字符串列表,然后在空格处分割每个字符串,因此它将是[filename,path]
这里的事情有点复杂:
1
2
3
4import os
from datetime import datetime
from time import strftime
datetime.fromtimestamp(os.path.getctime('filenames.txt')).strftime('%Y-%m-%d %H:%M:%S')
所有使用的模块都是内置的
祝好运