python - 如果然后循环退出而不填充列表
问题描述
我正在尝试使用 os.walk 遍历一系列文件夹,找到给定文件夹中最早的 excel 文件,并将其复制到临时文件夹。此循环在创建匹配列表之前一直退出。我收到错误
NameError: name 'xlsxExt' is not defined
如何让循环遍历 expFolder 中的每个文件,为每个 expFolder 创建一个“匹配”列表,然后对其进行排序?任何帮助将不胜感激!
path = r'C:\Users...'
tempFolder = os.mkdir(os.path.join(path, 'tempFolder'))
for dataFolder, expFolder, file in os.walk(path):
print("Starting", dataFolder)
matches = []
for file_name in file:
if file_name.endswith('.xlsx'):
xlsxExt = os.path.join(dataFolder, file_name)
matches.append(xlsxExt) #breaks here
sortedMatches = sorted(matches, key=os.path.getmtime)
first = sortedMatches[0][0:]
print(first)
解决方案
您正在初始化 for-1-for-2-if 块内的变量 xlsxExt。您收到此错误是因为代码无法初始化变量并且您将其附加到列表中。这意味着您的 for-2 或 if 由于条件不满足而没有被执行。始终在条件语句之外初始化此类变量。
推荐阅读
- c# - 使用 Moq,有没有办法以声明方式配置模拟对象以引发异常?
- react-native - 发布 APK 中的 React Native 包不起作用
- php - 使用 wp_remote_post() 在 MailChimp 中添加订阅者
- google-apps-script - AppScript UrlFetchApp.fetch() 不适用于只能由域用户访问的 WebApp
- c#-4.0 - 如何获取 REFRESH_TOKEN_AUTH 请求以返回 RefreshToken
- android - 关闭软键盘时,Android对话框不会回到底部
- javascript - 你能覆盖 JavaScript 对象的真实强制吗?
- python - 多线程:如何避免工作线程出错导致挂起
- r - 用于多重线性回归的嵌套应用而不是 R 中的双 for 循环
- python - pandas 为每一列添加新的“排名”列