文件结构
我有一个名为test_folder的父目录,其中有几个(大约600个)子文件夹。每个子文件夹包含以下内容:
-始终是metadump.xml文件
-一个.pdf、.pptx、.xls或.docx文件
目标
我想根据来自同一子文件夹中的.xml文件的标题信息重命名父目录(test_folder)的每个子文件夹中的.pdf、.pptx、.xls或.docx文件。你知道吗import os
for root, dirs, files in os.walk("C:\\**\\Downloads\\test_folder"):
for file in files:
if file == 'metadump.xml':
filename = os.path.join(root, file)
# READ XML FILE TO OBTAIN 'TITLE' INFORMATION
with open(filename, 'r', encoding='utf-8') as xml_file:
contents = xml_file.read()
title = re.search('
(.+?)', contents).group(1)print(title) #AS A CHECK FOR SUCCESSFUL TITLE EXTRACTION
# GOING THROUGH FILES AGAIN TO FIND NON-XML FILE
for file in files:
if file != 'metadump.xml':
print(file) #CHECKING THE CORRECT FILE TO BE RENAMED IS SELECTED
src = os.path.join(root, file) #ORIGINAL SOURCE PATH
dst = os.path.join(root, title)#NEW DESTINATION PATH
os.rename(src, dst) #TO RENAME FILES IN THE SUBFOLDER TO THE TITLE
运行此命令后,我收到以下消息:
Project Alpha<;--已从XML中提取了正确的标题
foobar.pdf<;--已选择子文件夹中正确的“其他”文件进行重命名
[WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:\\**\\Downloads\\test_folder\\banana\\foobar.pdf' -> 'C:\\**\\Downloads\\test_folder\\banana\\Project Alpha'
我不确定为什么无法重命名另一个文件foobar.pdf,其标题是从同一子文件夹中的.XML文件中提取的。你知道吗
所需输出的示例
在test_folder父目录的banana子文件夹中,我们有:
给定:
-foobar.pdf(通用文件名)
-metadump.xml(在这个文件中,可以提取标题:项目Alpha)
结果:
{br/>名称已更改(此处)
-metadump.xml
提前谢谢你的想法!你知道吗