使用 python 重命名多个子文件夹中的多个文件
Rename multiple files in multiple sub folders using python
这里是初学者 python 编码员。
这几天一直在为这个问题苦苦挣扎,终于放弃并寻求帮助。
说明的问题:
All Student folders:
Student a:
Work.pdf
Work2.pdf
Student b:
Work.pdf
Work2.pdf
文件夹 Student a
和 student b
各包含两个文件。
我需要将这些文件重命名为 homework1.pdf 和 homework2.pdf
当然在现实生活中我有两个以上的文件夹。
我认为使用 os.rename()
的 for 循环会起作用,但我无法让它更改多个文件。
这是我试过的
import os
# assign directory
directory = 'all Student folders'
# iterate over files
for root, dirs, files in os.walk(directory):
for filename in files:
if filename =='work.pdf':
os.rename('work.pdf', homework1.pdf')
非常感谢...
您需要在文件所在的目录中使用该文件。
import os
# assign directory
directory = "all Student folders"
# iterate over files
for root, _, files in os.walk(directory):
for file_name in files:
if file_name == "Work.pdf":
os.rename(f"{root}/{file_name}", f"{root}/homework1.pdf")
else:
new_name = file_name.replace(f"Work", "homework")
os.rename(f"{root}/{file_name}", f"{root}/{new_name}")
这里是初学者 python 编码员。
这几天一直在为这个问题苦苦挣扎,终于放弃并寻求帮助。
说明的问题:
All Student folders:
Student a:
Work.pdf
Work2.pdf
Student b:
Work.pdf
Work2.pdf
文件夹 Student a
和 student b
各包含两个文件。
我需要将这些文件重命名为 homework1.pdf 和 homework2.pdf
当然在现实生活中我有两个以上的文件夹。
我认为使用 os.rename()
的 for 循环会起作用,但我无法让它更改多个文件。
这是我试过的
import os
# assign directory
directory = 'all Student folders'
# iterate over files
for root, dirs, files in os.walk(directory):
for filename in files:
if filename =='work.pdf':
os.rename('work.pdf', homework1.pdf')
非常感谢...
您需要在文件所在的目录中使用该文件。
import os
# assign directory
directory = "all Student folders"
# iterate over files
for root, _, files in os.walk(directory):
for file_name in files:
if file_name == "Work.pdf":
os.rename(f"{root}/{file_name}", f"{root}/homework1.pdf")
else:
new_name = file_name.replace(f"Work", "homework")
os.rename(f"{root}/{file_name}", f"{root}/{new_name}")