Python - WindowsError:[错误2]系统找不到指定的文件

时间:2016-01-15 22:07:38

标签: python filenames

我有一个装满pdf文件的文件夹。我试图从文件名中删除所有空格并用下划线替换它们。这就是我到目前为止所拥有的:

import os, sys

folder = path to folder
FileList = os.listdir(folder)

for files in FileList:
    if ' ' in files:
        NewName = files.replace(" ", "_")
        os.rename(files, NewName)

当我运行此脚本时,我收到以下错误:

WindowsError: [Error 2] The system cannot find the file specified

我猜测有一个非常简单的解决办法,但是我一直都在看,无法找到解决方案。

感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

...

setData()

答案 1 :(得分:2)

只需将目录更改为必须重命名文件的目录,然后按照您的代码进行操作。

使用:os.chdir("destinationFolder")

答案 2 :(得分:0)

您重命名当前目录中的文件,但在os.rename中阅读。您需要添加os.chdir(folder)文件夹路径或开头os.listdir(),然后只需使用os.renamesc.textFile("s3n://logs/box316_0.seq").take(5).foreach(println)

答案 3 :(得分:0)

我为我的案子找到了一个简单的解决方案。我想重命名文件并不断得到WindowsError:[错误2]。只需用

更改当前目录即可
os.chdir(currdir)

然后没有尝试使用完整路径就可以了。这是相关的脚本行

if(os.path.exists(wd)) == 0:
print(wd+" DOES NOT EXIST!!")
sys.exit()

directories = [x[0] for x in os.walk(wd)]
ld = len(directories)
dsorted = sorted(directories)
print(dsorted)

for num in range(1,ld):
    currdir = dsorted[num]
    print("Working on Directory  "+currdir)
    os.chdir(currdir)
    filenames = next(os.walk(currdir))[2]
    l = len(filenames)

    for num in range(0,l):

        name = filenames[num]
        print("Present file  "+name)
        modtime = os.path.getmtime(name);print(modtime)
        moddate =datetime.datetime.fromtimestamp(modtime).strftime('%Y %m %d')
        moddate = moddate.replace(" ", "")
        print(moddate)

        namesplit = name.split(".")

        base = namesplit[0]
        newbase = base+"_"+moddate   
        newname = newbase+"."+namesplit[1]
        print(newname)       

        os.rename(name,newname)
        input()