Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python重命名目录中的文件_Python_File_Python 2.7 - Fatal编程技术网

如何使用python重命名目录中的文件

如何使用python重命名目录中的文件,python,file,python-2.7,Python,File,Python 2.7,我在名为“导出”的文件夹中有一个名为“x.mkv”的文件。X可以是任何东西。。它的名字不完全是X,它只是一个有名字的文件。 我想将文件重命名为“movie1x[720p].mkv”。我想保留文件的原始名称,并添加Movie1作为前缀,[720p]作为后缀。 文件夹中只有一个文件,仅此而已。 我该怎么做? 我尝试在os.rename中使用变量,但失败了。。这就是我使用的: import os w = os.listdir("C:/Users/UserName/Desktop/New_folder/

我在名为“导出”的文件夹中有一个名为“x.mkv”的文件。X可以是任何东西。。它的名字不完全是X,它只是一个有名字的文件。 我想将文件重命名为“movie1x[720p].mkv”。我想保留文件的原始名称,并添加Movie1作为前缀,[720p]作为后缀。 文件夹中只有一个文件,仅此而已。 我该怎么做? 我尝试在os.rename中使用变量,但失败了。。这就是我使用的:

import os
w = os.listdir("C:/Users/UserName/Desktop/New_folder/export")
s = '[Movie1]' + w + '[720p]'
os.rename(w,s)
我想做的是。。。从文件夹中获取文件名,因为存在并且将只有1个文件,因此,这似乎是合适的。 将获取结果保存为“w”,然后使用另一个变量“s”,并添加前缀和后缀。最后,我无法使用'
os.rename
'命令中的变量。

使用:


由于以下几个原因,您的原始版本无法使用:

  • os.listdir()
    返回列表而不是字符串,因此字符串连接将失败
  • os.rename()
    重命名文件时会遇到问题,除非给出路径或更改cwd
  • 我建议使用以下代码:

    import os
    path="C:/Users/UserName/Desktop/New_folder/export/"
    w = os.listdir(path)
    #since there is only one file in directory it will be first in list
    #split the filename to separate the ext from the rest of the filename
    splitfilename=w[0].split('.')
    s = '[Movie1]' + '.'.join(splitfilename[:-1]) + '[720p].'+splitfilename[-1]
    os.rename(path+w[0],path+s)
    

    你真的应该在问之前先试试。谷歌搜索“用python重命名文件”可能会得到一些好结果。。我失败了。。这就是为什么我问…:|thanx。。但是,就像我说的。。名字不是“x”…'“x”意味着名字可以是任何东西。。。它不是特别的x。。我不知道文件名…@user2408212对,所以用文件名替换“x”。我将代码放入一个函数中,这样您就可以根据具体需要使用不同的参数来调用它。如果您的问题是不知道如何获取文件名,您应该在问题中这样说(并添加具体的详细信息)。如果您的文件名在扩展名之前只有一个句点,您可以使用splitfilename[0],我已使用连接来纠正此问题。
    import os
    path="C:/Users/UserName/Desktop/New_folder/export/"
    w = os.listdir(path)
    #since there is only one file in directory it will be first in list
    #split the filename to separate the ext from the rest of the filename
    splitfilename=w[0].split('.')
    s = '[Movie1]' + '.'.join(splitfilename[:-1]) + '[720p].'+splitfilename[-1]
    os.rename(path+w[0],path+s)