文件修改和操作

2024-04-18 03:53:48 发布

您现在位置:Python中文网/ 问答频道 /正文

如何扫描dir中的文本文件并按修改日期读取文本文件,将其打印到屏幕上,让脚本每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:需要字符串或缓冲区,找到list。在


Tags: 文件pathin目录forrawosdir
1条回答
网友
1楼 · 发布于 2024-04-18 03:53:48

在计时器上重复操作

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

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

如果需要的话,记住这里有某种break条件,否则循环将永远运行。在

“类型错误:强制为Unicode:需要字符串或缓冲区,找到列表”

你的问题就在这条线上

^{pr2}$

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

相关问题 更多 >