2016-02-26 205 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