2016-02-26 204 views
0

我需要使用文本文件中的新名称引用重命名文件夹中的一堆文件。你能举个例子吗?如何在python中使用文本文件重命名文件名

我的新名字在文本文件中:

1BA 
1BB 
1BC 
1BD 
1BE 
1BF 
1C0 
1C1 
1C2 
1C3 

筛选。

更新的代码:

import csv 
import os 

with open('names.txt') as f2: 
     filedata = f2.read().split(",") 
     os.rename(filedata[0].strip(), filedata[1].strip()) 
f2.close() 
f2 = open ('Lines.txt','w') 
f2.write(filedata) 
f2.close() 
+1

请显示一些你的atte MPTS。 – Eric

+0

另外,如果您给出包含新名称的输入文本文件的示例,那将会很好。它可以是什么?它是否有特定的格式? – urban

回答

2

有关使用CSV什么(逗号分隔)格式oldPath, newPath文件输入并执行以下操作:

import csv 
import os 

with open('names.csv') as csvfile: 
    reader = csv.reader(csvfile) 
    for row in reader: 
     oldPath = row[0] 
     newPath = row[1] 
     os.rename(oldPath, newPath) 

另外,如果你想移动文件到另一个目录/文件系统,你可以看看shutil.move

+0

谢谢。这工作正常。 – lotus

+0

@lotus你从哪里取出旧名字?该文件似乎只有新名称?你可以像下面这样在循环中再次使用'os.rename':'open(“names.txt”)作为f:用于f:...中的行。这是按行 – urban

+0

读取文件行,不知何故你需要旧的名字。如果你使用'oldname,newname',你需要'parts = line.split(“,”)'来分隔新旧名称和'os.rename(parts [0] .strip(),parts [1])。条())'。 'strip'方法将删除名称周围的任何空格字符(如尾随'')。 – urban