【问题标题】:read filenames from a given .txt file python从给定的.txt文件python中读取文件名
【发布时间】:2019-03-07 22:18:39
【问题描述】:

我是 python 新手。

我正在尝试编写一个从 .txt 文件中读取文件的程序。

(这意味着我有一个 'filenames.txt' 文件,并且在该文件中有文件名及其路径) 如何从该 .txt 文件中读取这些文件名并获取文件的创建日期?

这是我想出的代码:

import 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 \n
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)

提前致谢。

【问题讨论】:

  • 需要更多信息,该文本文件中列出了哪些类型的文件? “阅读”是什么意思?如果他们
  • 您可以阅读here,尝试自己编写代码并询问是否发现任何错误或意外输出,因为没有其他人提出过类似的问题。
  • @CapnJack 我有一个 filenames.txt 文件,其中包含如下文件。 c/users/............ file1.txt c/users/............ file2.txt c/users/............ file3.txt 我想要我的程序使用这些文件路径读取这些文件并返回每个文件中的行数。
  • 抱歉,在我试图编辑我不小心提交的原始评论时接到了一个电话,所以我现在无法修复它。但我的意思是问:我可以假设这个文本文件中的所有文件都是其他文本文件吗?
  • 是的,filenames.txt 中的所有文件都是文本文件。

标签: python


【解决方案1】:

通过这个你可以打开一个文件:

file = open('path/to/filenames.txt')

假设数据每行写入一个文件名,您可以像这样从文件中读取:

filename = file.readline()

那么要知道创建时间,您可以import os 并使用stat 函数。这个函数会告诉你st_atime是最后访问时间,st_mtime是最后修改时间,st_ctime是创建时间。看看here

import os
stat = os.stat(filename)
creation_time = stat.s_ctime

要在文件名末尾省略空格,您可以使用 rstip。 因此,它总共看起来像这样:

import 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/…
【解决方案2】:

如果它们是这种格式:[文件名] [路径] 在每一行我建议如下:

f = open('filenames.txt', 'r').read().splitlines()

这将从文件中读取,然后将其分成几行

f = [x.split(' ') for x in f]

这是迭代 f 的一种缩短方法,它是一个字符串列表,然后在空格处拆分每个字符串,因此它将是 [文件名,路径]

这里的事情有点复杂:

import os
from datetime import datetime
from time import strftime
datetime.fromtimestamp(os.path.getctime('filenames.txt')).strftime('%Y-%m-%d %H:%M:%S')

所有使用的模块都是内置的

祝你好运

【讨论】:

    【解决方案3】:

    您可以使用以下方法检查文件创建时间:

    import os, time
    time.ctime(os.path.getctime('your_full_file_path'))
    

    【讨论】:

      猜你喜欢
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多