python中的文件删除产生奇怪的行为

时间:2019-01-28 16:04:35

标签: python

花费了2多个小时才解决问题,但没有任何救援方法。我正在尝试使用python脚本删除文件夹(windows)中的文件。以下是我正在执行的步骤:

  1. 查找目录中的所有文件以及绝对文件名和目录

    for origFile in os.listdir(base_dir):
        if origFile.endswith(".log"):
            fullFileName = os.path.abspath(origFile)
            fileDir = os.path.dirname(fullFileName)`
    
  2. 打印文件名,然后使用以下语句删除文件

    os.remove(os.path.join(fileDir,origFile))
    

我得到一个错误:

  

FileNotFoundError:[WinError 2]系统找不到文件   指定:'C:\ Users \ N93203 \ File CleanUp \ swiftmics1_SILog-   Copy.log'

它会自动添加"\\"而不是"\",因此找不到文件。

谢谢。

1 个答案:

答案 0 :(得分:4)

\只是表示字符串的一种方式,没有双反斜杠。

您可以通过使用os.path.join(fileDir, origFile).count('\\')

计算反斜杠来再次检查它

但是,os.remove(os.path.join(baseDir, origFile))应该在if块中起作用

如评论中所述,加入abspath毫无意义,因为它将从当前工作目录中产生一个全名,而不是您想要的base_dir

请确保加入baseDir