Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
使用Excel中的名称映射,使用Python重命名文件_Python_Python 3.x_Pandas - Fatal编程技术网

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

使用Excel中的名称映射,使用Python重命名文件,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个需要重命名的PDF文件(图纸)文件夹 文件名的格式均为“x-xxxxx-xxx-xx-xx-xxx-xx-xxx-XXXX-xxxxxx”,x为数字或字母 我有一张excel表格,在“A”列中列出了这些文件,然后在“B”列中,我有每行所需的新名称,格式为“yy-yyyyyy-yyy”,y是数字或字母 我想做的是使用Python(最好是Python 3)重命名文件,以便“y”名称首先是“x”名称,然后是分隔符 i、 e。 “yyy-YYYYY-yyy--x-xxxxx-xxx-xx-xx-

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

文件名的格式均为“x-xxxxx-xxx-xx-xx-xxx-xx-xxx-XXXX-xxxxxx”,x为数字或字母

我有一张excel表格,在“A”列中列出了这些文件,然后在“B”列中,我有每行所需的新名称,格式为“yy-yyyyyy-yyy”,y是数字或字母

我想做的是使用Python(最好是Python 3)重命名文件,以便“y”名称首先是“x”名称,然后是分隔符

i、 e。 “yyy-YYYYY-yyy--x-xxxxx-xxx-xx-xx-xxx-xx-xxx-xxxxx”

我猜熊猫会被用来与Excel文件交互

有人能帮忙吗

我对Python比较陌生,所以如果您能详细介绍一下所需的步骤,我将不胜感激

编辑:我尝试了以下代码,这些代码来自一篇类似的旧文章

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)
我理解第一部分,但我不理解涉及键1和键2的两行。我假设方括号将字符串“切分”为多个部分,但不确定术语。在那之后,我相信一个新的字符串被放在一起,并使用shutil命令重命名文件


编辑:感谢lbellomo的帮助,我已经尝试过使用它,并将数据加载到datatframe中(我使用spyder以便可以看到数据已被读取)。但是在iterrows行中,我遇到一个错误,语法不正确,并且在df.iterrows()上有一个胡萝卜符号指向冒号后面的空格:后面没有空格,我无法理解为什么会出现错误。

我假设您可以读取数据帧并有两列(其中旧名称是第一列,第二列是第二列)。此外,要重命名的文件也位于同一目录中

对于这个示例,我将创建以下测试数据帧:

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)

希望这能帮助你

我假设您可以读取数据帧并拥有两列(其中旧名称为第一列,第二列为第二列)。此外,要重命名的文件也位于同一目录中

对于这个示例,我将创建以下测试数据帧:

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)

希望这能帮助你

你试过了?在问题中添加代码,以便我们可以提供帮助!你试过了?在问题中添加代码,以便我们可以提供帮助!