我有一个需要重命名的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>
答案 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)
希望这可以帮到你!