【发布时间】:2012-03-09 02:09:14
【问题描述】:
您将如何扫描目录中的文本文件并按修改日期读取文本文件,将其打印到屏幕上,让脚本每 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:需要字符串或缓冲区,找到列表。
【问题讨论】:
-
如果你能展示你到目前为止所做的事情会很有帮助。
-
显示失败的代码部分
-
Time = time.ctime(os.path.getmtime(contents)) 这是失败的代码,它给了我强制 unicode 错误。
-
请不要发帖exact duplicate questions。这样做是非常不礼貌的。
-
@mintgreen:发布您收到的错误的回溯。另外,为什么不直接使用
time.sleep(),假设脚本没有做任何其他事情。
标签: python datetime file-io time timer