鱼C论坛

 找回密码
 立即注册
查看: 3885|回复: 4

[已解决]python自动办公代码运行结果与预期不符

[复制链接]
发表于 2023-3-16 11:44:15 | 显示全部楼层    本楼为最佳答案   
你好!从你的代码中,我发现了一个小问题。在判断Ex_filevolume == data['档案编号'].shape[0]这个条件的时候,实际上在循环中永远无法满足这个条件,

因为Ex_filevolume的取值范围是0到data['档案编号'].shape[0] - 1。因此,你需要将条件改为Ex_filevolume == data['档案编号'].shape[0] - 1。

下面是修改后的代码:


  1. import pandas as pd
  2. import os

  3. data = pd.read_excel('项目01.xlsx', sheet_name='Sheet1')
  4. Target_filename = os.listdir('I:\对比工作预备\')
  5. New_list = []

  6. for Tar_filevolume in range(len(Target_filename)):
  7.     found = False
  8.     for Ex_filevolume in range(data['档案编号'].shape[0]):
  9.         if Target_filename[Tar_filevolume][:16] == data['档案编号'].loc[Ex_filevolume]:
  10.             X = Target_filename[Tar_filevolume][:16] + '已归档'
  11.             New_list.append(X)
  12.             found = True
  13.             break
  14.         else:
  15.             if Ex_filevolume == data['档案编号'].shape[0] - 1:
  16.                 y = Target_filename[Tar_filevolume][:16] + '未归档'
  17.                 New_list.append(y)
  18.             else:
  19.                 continue
  20.     if not found:
  21.         y = Target_filename[Tar_filevolume][:16] + '未归档'
  22.         New_list.append(y)

  23. Writer = pd.ExcelWriter('项目01.xlsx', mode='a')
  24. New_excel = pd.DataFrame(New_list)
  25. New_excel.to_excel(Writer, sheet_name='Sheet2')
  26. Writer.close()
复制代码


这样应该可以正确处理未归档的编号,并将其写入到新表Sheet2中。希望这能帮到你!如果有其他问题,请随时提问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-16 13:58:16 | 显示全部楼层
bio911 发表于 2023-3-16 13:54
万分感谢大神解答!!!!
再向大神请教下:
1、Ex_filevolume是range()从0、1、2.....到100,然后data ...


1、是的,你理解得很正确。Ex_filevolume的取值范围是从0到100,而data['档案编号'].shape[0]的值是101。

所以,在你原始的代码中,条件Ex_filevolume == data['档案编号'].shape[0]始终无法满足。

因此,我们需要将条件改为Ex_filevolume == data['档案编号'].shape[0] - 1,这样就可以正确处理未归档的编号。



2、我们设置found变量的目的是为了在遍历data中的档案编号时,记录当前文件名在data中是否找到了对应的归档编号。

如果找到了,我们就将其标记为已归档,并将found设置为True。

而如果在遍历完整个data后都没有找到对应的归档编号,那么found仍然是False,此时我们就可以将当前文件名标记为未归档。

在23-25行代码中,我们根据found的值来决定是否将当前文件名标记为未归档。

如果found为False,则表示当前文件名没有在data中找到对应的归档编号,因此我们将其标记为未归档。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-2 04:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表