程序没问题,运行报错:Directory not empty

本文介绍了当使用 Xcode 开发 iOS 应用时遇到 Directorynotempty 错误的解决方案。长时间积累的缓存文件可能导致硬盘空间不足并引发此错误。通过删除位于特定路径下的缓存文件可以解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序没问题,运行报错:Directory not empty

解决:

位于/Users/你电脑名/Library/Developer/Xcode/DerivedData  下的缓存文件占很大的缓存空间,如果长时间不删除xcode下的缓存文件,就会导致硬盘空间越来越小直到Directory not empty。删除了缓存文件再运行就不会再报错。

报错:PS C:\Gerrit\Leopard_Code\R33> & C:/Users/lang.sun/AppData/Local/Programs/Python/Python313/python.exe c:/Users/lang.sun/Desktop/213/1.py Traceback (most recent call last): File "c:\Users\lang.sun\Desktop\213\1.py", line 39, in <module> filtered_df, target_rows = filter_data() ~~~~~~~~~~~^^ File "c:\Users\lang.sun\Desktop\213\1.py", line 12, in filter_data df = pd.read_excel(src_path, engine='openpyxl') File "C:\Users\lang.sun\AppData\Local\Programs\Python\Python313\Lib\site-packages\pandas\io\excel\_base.py", line 495, in read_excel io = ExcelFile( io, ...<2 lines>... engine_kwargs=engine_kwargs, ) File "C:\Users\lang.sun\AppData\Local\Programs\Python\Python313\Lib\site-packages\pandas\io\excel\_base.py", line 1567, in __init__ self._reader = self._engines[engine]( ~~~~~~~~~~~~~~~~~~~~~^ self._io, ^^^^^^^^^ storage_options=storage_options, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ engine_kwargs=engine_kwargs, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "C:\Users\lang.sun\AppData\Local\Programs\Python\Python313\Lib\site-packages\pandas\io\excel\_openpyxl.py", line 553, in __init__ super().__init__( ~~~~~~~~~~~~~~~~^ filepath_or_buffer, ^^^^^^^^^^^^^^^^^^^ storage_options=storage_options, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ engine_kwargs=engine_kwargs, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "C:\Users\lang.sun\AppData\Local\Programs\Python\Python313\Lib\site-packages\pandas\io\excel\_base.py", line 563, in __init__ self.handles = get_handle( ~~~~~~~~~~^ filepath_or_buffer, "rb", storage_options=storage_options, is_text=False ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "C:\Users\lang.sun\AppData\Local\Programs\Python\Python313\Lib\site-packages\pandas\io\common.py", line 882, in get_handle handle = open(handle, ioargs.mode) FileNotFoundError: [Errno 2] No such file or directory: 'HPC_CS対応結果_V0.22 - 副本 1.xlsx' PS C:\Gerrit\Leopard_Code\R33>
最新发布
03-26
<think>好的,用户遇到了一个Python脚本运行的错误,错误信息显示文件未找到。我需要先分析报错的原因。 首先,查看错误日志,关键点是FileNotFoundError: [Errno 2] No such file or directory: 'HPC_CS対応結果_V0.22 - 副本 1.xlsx'。这说明脚本无法找到源文件。可能的原因有几个:文件路径不正确、文件名有误、或者文件不在当前工作目录下。 用户提供的脚本中,src_path和dst_path是直接写死的文件名,没有包含完整路径。Python脚本运行时,默认会在当前工作目录下查找文件,而当前目录可能不是文件实际所在的位置。用户可能把脚本放在桌面的213文件夹里,而Excel文件可能在另一个目录,比如C:\Gerrit\Leopard_Code\R33。这时候,相对路径就无法正确找到文件,导致报错。 接下来,我需要考虑用户可能的操作环境。用户是在PowerShell中运行脚本,当前路径是PS C:\Gerrit\Leopard_Code\R33>,而脚本路径是c:/Users/lang.sun/Desktop/213/1.py。所以,当脚本执行时,当前工作目录是R33,而Excel文件可能不在这个目录下,导致找不到文件。 解决方案应该是让用户提供正确的文件路径。可能的做法包括使用绝对路径,或者将文件移动到脚本所在目录并使用相对路径。此外,检查文件名是否正确,特别是是否有空格或特殊字符被错误处理,但错误信息中的文件名看起来是正确的,所以可能不是这个问题。 另外,用户可能需要确认两个Excel文件确实存在,并且路径正确。可以建议用户打印当前工作目录,或者检查文件的绝对路径是否正确。此外,脚本中的文件名是否有多余的空格,比如“副本 1”中间的空格是否正确,但错误信息显示的文件名中有空格,可能没有问题,因为Python可以处理带空格的路径,只要用正确的字符串即可。 还有,跨平台的问题,比如Windows中使用反斜杠,但在Python字符串中应使用双反斜杠或正斜杠。用户脚本中的路径是正斜杠,应该没问题,但需要确认实际路径是否匹配。 总结,用户的问题主要是文件路径不正确。需要指导用户正确设置src_path和dst_path,使用绝对路径,并确保文件存在。此外,添加异常处理可以更好地捕捉错误,帮助用户诊断问题。 可能的建议步骤: 1. 检查文件实际存放的位置,获取完整路径。 2. 修改脚本中的文件路径变量为绝对路径。 3. 添加异常处理,捕获文件未找到错误,并给出提示。 4. 确认文件名是否正确,包括空格和特殊字符。 5. 确保用户有权限访问这些文件。 最后,考虑用户可能对路径操作不太熟悉,提供具体的示例和如何获取路径的方法会更有效,比如指导他们如何在文件资源管理器中复制路径,或者在脚本中打印当前目录,帮助定位问题。</think>从报错信息可以明确看出,核心问题是**文件路径配置错误**。以下是详细的问题分析和解决方案: --- ### **错误原因诊断** ```python FileNotFoundError: [Errno 2] No such file or directory: 'HPC_CS対応結果_V0.22 - 副本 1.xlsx' ``` 1. **路径不匹配** - 脚本中使用的文件名与实际文件路径不一致 - 文件可能存放在其他目录,或文件名包含隐藏字符(如多余空格) 2. **工作目录问题** - 当前PowerShell工作目录为 `C:\Gerrit\Leopard_Code\R33` - 脚本执行时会在此目录下查找文件,而文件实际可能位于其他位置(如桌面) --- ### **解决方案** #### 步骤1:确认文件实际路径 通过以下方法获取文件的**完整绝对路径**: 1. 打开文件所在目录 2. 按住`Shift`键 + 右键单击文件 → 选择「复制为路径」 3. 粘贴到脚本中(示例): ```python src_path = r"C:\Users\lang.sun\Desktop\HPC_CS対応結果_V0.22 - 副本 1.xlsx" dst_path = r"C:\Users\lang.sun\Desktop\HPC_CS対応結果_V0.22.xlsx" ``` #### 步骤2:增强路径兼容性 修改脚本文件路径配置部分: ```python import os # 使用原始字符串(r"")避免转义问题 src_path = r"完整绝对路径\HPC_CS対応結果_V0.22 - 副本 1.xlsx" # 替换为实际路径 dst_path = r"完整绝对路径\HPC_CS対応結果_V0.22.xlsx" # 替换为实际路径 # 添加路径存在性校验 if not os.path.exists(src_path): raise FileNotFoundError(f"源文件不存在:{src_path}") if not os.path.exists(dst_path): raise FileNotFoundError(f"目标文件不存在:{dst_path}") ``` #### 步骤3:处理中文路径问题 在读取Excel时显式指定引擎: ```python df = pd.read_excel(src_path, engine='openpyxl') # 确保使用openpyxl引擎 ``` --- ### **完整修复版脚本** ```python import pandas as pd from openpyxl import load_workbook import os # 使用原始字符串并验证路径 src_path = r"C:\真实路径\HPC_CS対応結果_V0.22 - 副本 1.xlsx" dst_path = r"C:\真实路径\HPC_CS対応結果_V0.22.xlsx" # 路径校验 if not all(map(os.path.exists, [src_path, dst_path])): missing = [p for p in [src_path, dst_path] if not os.path.exists(p)] raise FileNotFoundError(f"以下文件不存在:{missing}") def filter_data(): df = pd.read_excel(src_path, engine='openpyxl') mask = df['L'].astype(str).str.contains('秦拓') return df[mask][['V', 'W', 'X']], df[mask].index + 2 def update_target(filtered_data, target_rows): wb = load_workbook(dst_path) ws = wb.active for row_idx, (_, row_data) in zip(target_rows, filtered_data.iterrows()): ws[f'V{row_idx}'] = row_data['V'] ws[f'W{row_idx}'] = row_data['W'] ws[f'X{row_idx}'] = row_data['X'] wb.save(dst_path) print(f"更新完成,共处理{len(target_rows)}条记录") if __name__ == "__main__": filtered_df, target_rows = filter_data() update_target(filtered_df, target_rows) if not filtered_df.empty else print("无匹配数据") ``` --- ### **关键注意事项** 1. **路径格式验证** - 检查文件名中的空格和特殊符号是否与脚本一致 - 示例:`副本 1`中的空格必须与实际文件名完全匹配 2. **文件权限检查** - 确保目标文件没有被其他程序(如Excel)打开 - 右键文件 → 属性 → 安全标签页 → 验证用户权限 3. **编码问题预防** - 如果文件路径包含日文/中文,建议将文件重命名为纯英文后再测试 --- ### **扩展调试建议** 1. 在脚本开头添加路径打印: ```python print("当前工作目录:", os.getcwd()) print("源文件是否存在:", os.path.exists(src_path)) ``` 2. 如果使用VSCode,可通过调试模式逐步执行定位问题 通过以上调整,应该可以解决文件路径相关的报错问题。如果仍有异常,请提供文件资源管理器中文件路径的截图以便进一步分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值