python 重命名子文件夹为父文件夹名字加子文件夹本身_Python操作系统重命名()用于父目录中多个子文件夹中的文件...

本文介绍如何使用Python脚本遍历test_folder下的子文件夹,通过读取metadump.xml中的标题信息,然后重命名非.xml文件,如.pdf、.pptx等。遇到的问题及解决方法也进行了探讨。
摘要由CSDN通过智能技术生成

文件结构

我有一个名为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

提前谢谢你的想法!你知道吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值