Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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 2.7中的批重命名文件_Python_Append_Rename - Fatal编程技术网

Python 2.7中的批重命名文件

Python 2.7中的批重命名文件,python,append,rename,Python,Append,Rename,我正在尝试重命名目录中的文件,以便新名称是原始名称,后跟空格+“17-”+递增的数字 下面的代码只是从151向上重命名文件。如何保留原始名称,添加文本“17-”和数字 import os path = 'C:\Users\dcs\Desktop\Test direct' files = os.listdir(path) i = 151 for file in files: os.rename(os.path.join(path, file), os.path.join(path, st

我正在尝试重命名目录中的文件,以便新名称是原始名称,后跟空格+“17-”+递增的数字

下面的代码只是从151向上重命名文件。如何保留原始名称,添加文本“17-”和数字

import os
path = 'C:\Users\dcs\Desktop\Test direct'
files = os.listdir(path)
i = 151

for file in files:
    os.rename(os.path.join(path, file), os.path.join(path, str(i)+'.TIF'))
    i = i+1

只需编写连接表达式。如果我正确理解您的详细信息,您的新循环体将

new_name = file + " 17-" + str(i) + ".TIF"
os.rename(os.path.join(path, file), 
          os.path.join(path, new_name) )
i += 1
这会将文件“ABC”更改为文件“ABC 17-151.TIF”;下一个将包含“17-152”,以此类推

FACEPALM

文件
是内置类型。更改循环索引

for fname in files:
    new_name = fname + " 17-" + str(i) + ".TIF"
    os.rename(os.path.join(path, fname), new_name)
    i += 1

只需编写连接表达式。如果我正确理解您的详细信息,您的新循环体将

new_name = file + " 17-" + str(i) + ".TIF"
os.rename(os.path.join(path, file), 
          os.path.join(path, new_name) )
i += 1
这会将文件“ABC”更改为文件“ABC 17-151.TIF”;下一个将包含“17-152”,以此类推

FACEPALM

文件
是内置类型。更改循环索引

for fname in files:
    new_name = fname + " 17-" + str(i) + ".TIF"
    os.rename(os.path.join(path, fname), new_name)
    i += 1

如果我理解普伦姆的建议(我显然不理解),它看起来会是:

import os
path = 'C:\Users\dcs\Desktop\Test direct'
files = os.listdir(path)
i = 151

#The part that I want to strip the extensions from
for file in files:
    new_name = file[:-3]

#The part that words correctly (thanks Prune)
for fname in files:
    new_name = fname + " 17-" + str(i) + ".TIF"
    os.rename(os.path.join(path, fname), new_name)
    i += 1

然而,第一部分,即删除文件扩展名的部分不起作用

如果我理解普伦姆的建议(我显然不理解),它看起来会是:

import os
path = 'C:\Users\dcs\Desktop\Test direct'
files = os.listdir(path)
i = 151

#The part that I want to strip the extensions from
for file in files:
    new_name = file[:-3]

#The part that words correctly (thanks Prune)
for fname in files:
    new_name = fname + " 17-" + str(i) + ".TIF"
    os.rename(os.path.join(path, fname), new_name)
    i += 1

然而,第一部分,即删除文件扩展名的部分不起作用

文件
仍然是字符串吗?在执行rename`命令之前,尝试打印类型(文件)。在我的Python上,
listdir
返回字符串列表。这非常奇怪:
file
是泛型类型??我不能用你的代码复制这个。我已经在本地目录中尝试了我的解决方案,它按预期工作,在
for
语句中定义了
fname
。您被困在哪里?该错误消息看起来非常具体。请删除它。如果在最后,只需用
name[:-3]
抓住切片,直到最后。如果在中间,使用<代码>名称。替换(“.TIF”,“”)<代码>——这在任何一种情况下都有效。<代码>文件<代码>仍然是字符串吗?在执行
rename`命令之前,尝试打印类型(文件)。在我的Python上,
listdir
返回字符串列表。这非常奇怪:
file
是泛型类型??我不能用你的代码复制这个。我已经在本地目录中尝试了我的解决方案,它按预期工作,在
for
语句中定义了
fname
。您被困在哪里?该错误消息看起来非常具体。请删除它。如果在最后,只需用
name[:-3]
抓住切片,直到最后。如果它在中间,使用<代码>名称。替换(“.TIF”,“”)<代码>——这在任何一种情况下都有效。