使用Excel重命名文件,使用Excel中的名称映射

时间:2017-01-03 07:06:22

标签: python python-3.x pandas

我有一个需要重命名的PDF文件夹(图纸)。

文件名的格式均为" 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-xx-xx-xxx-xx-xxx-xxx-xxxxxx"

我猜测Pandas会用来与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的帮助,我尝试使用它并将数据加载到数据框中(我正在使用spyder,因此我可以看到数据被读取) 。但是在iterrows行上我得到一个错误,说错误的语法和胡萝卜符号指向df.iterrows()冒号后面的空格:我之后没有空格,无法弄清楚为什么我得到错误。< / p>

1 个答案:

答案 0 :(得分: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)

希望这可以帮到你!