Python文件输入输出错误
我有一个程序,它会监控一个文件夹里的Word文档,看看这些文件有没有被修改。当我运行这个程序,打开文件夹里的一个.doc文件,做了一些修改并保存后,就出现了一个错误 - Windows错误[2] 系统找不到指定的文件。你有什么建议可以解决这个问题吗?
编辑1:实际的错误代码是这样的
File "C:\Users\keinsfield\Desktop\docu.py", line 27, in check
if info[0]==os.stat(os.path.join(r"C:\Users\keinsfield\Desktop\colegio",file
).st_ctime:
WindowsError: [Error 2] The system cannot find the file specified: 'C:\\Users\\k
insfield\\Desktop\\colegio\\~WRD1761.tmp'
这是代码:
def archivar():
txt = open('archivo.txt', 'r+' )
for rootdir, dirs, files in os.walk(r"C:\Users\keinsfield\Desktop\colegio"):
for file in files:
time = os.stat(os.path.join(rootdir, file)).st_ctime
txt.write(file +','+str(time) + '\n')
def check():
txt = [col.split(',') for col in (open('archivo.txt', 'r+').read().split('\n'))]
files = os.listdir(r"C:\Users\keinsfield\Desktop\colegio")
for file in files:
for info in txt:
if info[0]==os.stat(os.path.join(r"C:\Users\keinsfield\Desktop\colegio",file)).st_ctime:
print "modified"
2 个回答
0
试着使用 os.path.join()
,比如:
root="c:\\"
path=os.path.join(root,"Users","keinsfield","Desktop","colegio")
....
for rootdir, dirs, files in os.walk(path):
....
0
我觉得从错误信息来看,很明显在调用 os.walk
和 os.stat
之间,那个 临时 文件被删除了。如果你不需要进入子文件夹,其实不需要用 os.walk
。你可以用 glob.iglob
来获取只有文档文件的列表:
for file in glob.iglob(os.path.join(root, '*.doc')):
print(file)