2017-01-03 28 views
1

我有一個需要重命名的PDF文件(圖形)文件夾。使用Python重命名文件,使用Excel中的名稱映射

文件名都是格式「x-xxxxx-xxx-xx-xx-xxx-xx-xxx-xxx-xxxxxx」,其中x是數字或字母。

我有一個excel表,列'A',然後在列'B'列出這些文件我有格式爲「yy-yyyyyy-yyy」的每行所需的新名稱,y是數字或字母。

我想做的是使用Python(優選Python 3中),從而使「Y」的名字是先用之間的隔膜後所附的「x」名來重命名文件,

即 「yy-yyyyyy-yyy -x-xxxxx-xxx-xxx-xxx -x-xxx-xxx-xxx-xxxxxx」

我在猜測熊貓會被用來與Excel文件進​​行交互?

任何人都可以幫忙嗎?

我對Python比較新,所以需要了解所需步驟的細分和解釋。

編輯:我試了下面的代碼是從一箇舊帖子Jesse Lopez這是類似的。

import pandas 
import shutil 

IdMapping = pandas.io.excel.read_excel('IdMapping.xlsx', 'sheet1') 
for r in master: 
    key1 = r.split('.')[3] 
    key2 = r.split('.')[4][-2:] 
    old = 'ASSET MOVEMENT %s %s' % (key1, key2) 
    new = r 
    shutil.move(old, new) 

我明白了第一部分,但引用key1和key2的兩行我不明白。我假設方括號將字符串「切分」爲多個部分,但不確定術語。之後,我相信一個新的字符串放在一起,他們的文件用shutil命令重命名。

編輯:感謝您的幫助lbellomo,我曾嘗試使用它,並得到儘可能將數據加載到datatframe(我使用Spyder的,所以我可以看到數據讀取)。但是在iterrows行中,我收到一個錯誤,說錯誤的語法和一個指向df.iterrows()冒號後面空格的胡蘿蔔符號:我之後沒有空格,並且無法弄清楚爲什麼我會收到錯誤。

+1

你試過了嗎?把代碼放在問題中,以便我們幫助! – Lucas

回答

0

我假設你可以讀取數據幀並有兩列(舊名稱是第一個和第二個)。此外,要重命名的文件位於相同的目錄中。

對於我要創建這個測試數據框的例子:

data = [{"colum A": "old name 1", "colum B": "new name 1"}, 
     {"colum A": "old name 2", "colum B": "new name 2"}, 
     {"colum A": "old name 3", "colum B": "new name 3"}] 
df = pd.DataFrame(data=data) 

我們做什麼:遍歷數據框的行,我們讀到舊名稱和新的(這是新但--加上舊的),我們打印它,最後我們改變文件的名稱。

for row in df.iterrows(): 
    old_name = row[1][0] 
    new_name = row[1][1] + ' -- ' + old_name 
    print("Old name: ", old_name, " New name: ", new_name) 
    shutil.move(old, new) 

希望這能幫助你!