如何阻止os.rename移动文件?Unix可执行脚本重命名CSV异常
问题根源与解决方案
你的问题出在os.rename的目标路径设置上——你只写了"CC.csv"这个文件名,没有指定完整的目标目录,Python会默认把文件移动到当前脚本的工作目录,而不是你期望的spath目录下,这就是原目录csv消失、后续读取找不到文件的核心原因。
修改后的代码
把重命名的目标路径改成完整路径,用os.path.join拼接目录和文件名,确保文件在原目录内完成重命名:
import os spath='/Users/emmanuel/Documents/Selenium/' sourcefiles = os.listdir(spath) for file in sourcefiles: if file.endswith('.csv'): # 拼接完整目标路径,确保文件留在原目录 target_full_path = os.path.join(spath, "CC.csv") os.rename(os.path.join(spath, file), target_full_path)
补充说明
- 你之前用
print(os.getcwd())输出的目录里,应该能找到之前“消失”的CC.csv,可以去验证这一点; - 由于你提到每次仅处理一个csv文件,这个循环不会出现多文件覆盖问题(如果目录内存在多个csv,后续文件会覆盖前面的,但你的场景不存在这个情况);
- 修改后,后续
pd.read_csv('/Users/emmanuel/Documents/Selenium/CC.csv')就能正常读取到目标文件了。
内容的提问来源于stack exchange,提问作者user14425857
相关产品推荐
相关产品推荐

