需求:
1.在ana文件夹下有若干其他文件夹,我需要读出ana下的所有子目录的名字,再找到各个子目录中最近更新的两个文件,分别比较不同之后再汇总。
2.然后就出了莫名其妙的报错,百思不得其解。代码如下:
import os
filePath = '/.../ana/'
name = os.listdir(filePath)
print(name)#打印反馈征程
dirr = []
#(因为发现ds.store排在了列表首个,所以不取index-0,直接从index-1开始)
for i in name[1:]:
dirr.append(filePath+i)
print(dirr)
#打印反馈正常
for i in dirr:
a=os.listdir(i)
print(a)#打印反馈正常
print(len(a))#打印反馈正常
#因为有的目录下只有一个文件夹,所以先判定至少有两个再比较否则返回错误
if len(a)>=2:
print(a[0])#打印反馈正常,文件名:test2.csv
print(a[1])#打印反馈正常,文件名:test1.csv
with open(a[0], 'r') as t1, open(a[1], 'r') as t2:
old = t1.readlines()
new = t2.readlines()
con = []
for line in new:
if line not in old:
con.append([i,line])
print(con)
else:
print(f"{i} file has less than 2 files")
exit()
最后居然报错:
with open(a[0], 'r') as t1, open(a[1], 'r') as t2:
FileNotFoundError: [Errno 2] No such file or directory: 'test2.csv'
但是我打印
print(a)
print(len(a))
print(a[0])
print(a[1])
几个命令都是正常的,甚至连文件名都打出来了,怎么你with open就说不存在呢?