2012-09-09 15 views
-1

我正在尝试重命名glob和os模块的一堆文件,但我没有找到任何地方。我寻找了一些解决方案,但没有找到任何。 “当该文件已经存在时,无法创建文件”。试图用glob和os模块重命名文件

如果我得到这个工作,我不知道如何重命名多个项目,比如我有三张图片,分别叫做img_1001,img_1002和img_1003。我怎么可以将这些重命名为:picture_1,picture_2和picture_3。

这是我目前的代码。

import os 
import glob 

x = glob.glob(r"C:\Users\Verzo\Desktop\New folder\*.txt") 

for filename in x: 
    os.rename(filename, "Picture ") 

回答

0

类似的东西(未经测试)

import os 
import glob 

x = glob.glob(r"C:\Users\Verzo\Desktop\New folder\*.txt") 

for filename in x: 
    name, num = filename.split('_') 
    num = int(num) 
    os.rename(filename, 'picture_%d' % num) 
+0

我得到“需要超过1个值才能解包”错误。 – Hyzenthlay

+0

这段代码不是非常健壮的:只有当每个匹配glob的文件名都包含一个下划线(并且只有一个)时,它才会起作用。去@ riamse的答案。 – alexis

0
for filename in x: 
     os.rename(filename, "Picture ") 

的脚本试图在该列表中的每个文件重命名为Picture。正如你发现的那样,这是行不通的。

以下代码未经测试。

import os 
    from glob import glob 

    for number, filename in enumerate(glob(r"C:\Users\Verzo\Desktop\New folder\*.txt")): 
     try: 
      os.rename(filename, "Picture_{0}".format(number)) 
     except OSError as e: 
      print("Something happened:", e)