马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这里请教下各位论讨大神,自己尝试编辑一个自动办公(关于筛选文件的)目标是通过代码实现台账遍历文件夹的文件名对比台账中记录的情况,返回列表结果到新表中。
EXCEL台账“项目01.xlsx”中记录了已经归档的档案编号(比如,CR10052022090030)PS:目前台账就记录了100条已归档
文件夹“对比工作预备”中存放了现有取号的档案编号的文件夹子,并备注了归档情况(文件名:CR10052022090099 - 未归档;文件名:CR10052022090088 - 已归档)
代码目的:从台账第一项编号起,对比文件夹中对应的文件名情况,返回结果到列表New_list中,然后将结果列表写入EXCEL的Sheet2中查看。
import pandas as pd
import os
data = pd.read_excel('项目01.xlsx',sheet_name='Sheet1') #将EXCEL台账中记录的编号读取进DATAFRAME
Target_filename = os.listdir('I:\对比工作预备\') #将路径下的文件夹中的文件读取进
New_list = [] #设计一个空列表,后续用于存储遍历结果
for Tar_filevolume in range(len(Target_filename)):
for Ex_filevolume in range(data['档案编号'].shape[0]):
if Target_filename[Tar_filevolume][:16] == data['档案编号'].loc[Ex_filevolume] :
X = Target_filename[Tar_filevolume][:16]+'已归档'
New_list.append(X)
break
else:
if Ex_filevolume == data['档案编号'].shape[0]:
y = Target_filename[Tar_filevolume][:16]+'未归档'
New_list.append(y)
break
else:
continue
Writer = pd.ExcelWriter('项目01.xlsx',mode='a') #将查询结果New_list列表写入Sheet2中
New_excel = pd.DataFrame(New_list)
New_excel.to_excel(Writer,sheet_name='Sheet2')
Writer.close()
最后的执行结果是:
只把台账中100个已归档的编号写入了新表sheet2中,而文件夹中未归档的编号缺未写入sheet2中。
请各位大神帮忙指导下,谢谢O(∩_∩)O
你好!从你的代码中,我发现了一个小问题。在判断Ex_filevolume == data['档案编号'].shape[0]这个条件的时候,实际上在循环中永远无法满足这个条件,
因为Ex_filevolume的取值范围是0到data['档案编号'].shape[0] - 1。因此,你需要将条件改为Ex_filevolume == data['档案编号'].shape[0] - 1。
下面是修改后的代码:
import pandas as pd
import os
data = pd.read_excel('项目01.xlsx', sheet_name='Sheet1')
Target_filename = os.listdir('I:\对比工作预备\')
New_list = []
for Tar_filevolume in range(len(Target_filename)):
found = False
for Ex_filevolume in range(data['档案编号'].shape[0]):
if Target_filename[Tar_filevolume][:16] == data['档案编号'].loc[Ex_filevolume]:
X = Target_filename[Tar_filevolume][:16] + '已归档'
New_list.append(X)
found = True
break
else:
if Ex_filevolume == data['档案编号'].shape[0] - 1:
y = Target_filename[Tar_filevolume][:16] + '未归档'
New_list.append(y)
else:
continue
if not found:
y = Target_filename[Tar_filevolume][:16] + '未归档'
New_list.append(y)
Writer = pd.ExcelWriter('项目01.xlsx', mode='a')
New_excel = pd.DataFrame(New_list)
New_excel.to_excel(Writer, sheet_name='Sheet2')
Writer.close()
这样应该可以正确处理未归档的编号,并将其写入到新表Sheet2中。希望这能帮到你!如果有其他问题,请随时提问。
|