【问题标题】:file modifiaction and manipulation文件修改和操作
【发布时间】:2012-03-09 03:25:09
【问题描述】:

您将如何扫描目录中的文本文件并按修改日期读取文本文件,将其打印到屏幕上,让脚本每 5 秒扫描一次目录以获取较新的文件并打印出来。 有没有可能你可以帮助我我被卡住了,我需要这个真的很糟糕,我已经有了文件和打印的扫描目录,但它不会按修改日期打印文件。

import os,sys
os.chdir(raw_input('dir_path: ') )    
contents=os.listdir('.') #contents of the current directory
files =[]
directory=[]
Time = time.ctime(os.path.getmtime(contents))
for i in contents:
    if os.path.isfile(i) == True :
       files.append(i)
    elif os.path.isdir(i) == True :
       directory.append(i)
    #printing contents
choice = ""       
for j in files:
    while choice != "quit":
            choice = raw_input("Dou you want to print file  %s (y/n): "%j)
            if choice == 'y':
               print "**************************"
               print "Printing Files %s" %j
               print "**************************"
               fileobj = open(j,'r')
               contents = fileobj.readlines()
               for k in contents:
                     sys.stderr.write(k)
               else:
                    pass

我想要的不是我的代码询问它是否要打印我需要它来打印文件如果被当前时间修改意味着如果它读取了一个刚刚放置在目录中的文件并且一个新文件进入它将在不提示我的情况下读取新文件。 它给我的错误是强制使用 unicode:需要字符串或缓冲区,找到列表。

【问题讨论】:

  • 您的问题不清楚。 “按修改日期读取文本文件”是什么意思?您的意思是要按修改时间顺序打印所有文件吗?还是您只想打印自上次查看文件以来已更改的文件?
  • 你用的是linux吗?如果是这样,有一个更好的方法来监视文件系统事件的目录:pyinotifyOSXWindows 也有类似的解决方案。
  • 请不要发帖exact duplicate questions。这是非常不礼貌的。
  • 我只想打印上次更改的文件

标签: python file time timer


【解决方案1】:

在计时器上重复操作

您可以通过将无限循环与time.sleep() 函数相结合,每五秒重复一次操作,如下所示:

import time
while True:
    time.sleep(5)         # wait five seconds
    print (time.time())   # print the time

如果需要,请记住在此处添加某种break 条件,否则循环将永远运行。

“TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到列表”

你的问题出在这条线上

Time = time.ctime(os.path.getmtime(contents))

您提供了文件名的列表os.path.getmtime 函数需要一次有一个文件名。错误消息告诉您它不知道如何将文件名列表转换为文件名。

【讨论】:

  • 我的意思是按修改时间一一打印目录中的文件?
  • contents,由os.listdir() 返回,是一个文件名序列。思考如何使用for 循环逐个元素地遍历该序列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 2013-02-18
相关资源
最近更新 更多