gpt4 book ai didi

Python。重命名子目录中的文件

转载 作者:行者123 更新时间:2023-12-05 08:34:22 25 4
gpt4 key购买 nike

能否请您帮我修改以下脚本以更改子目录中的文件名。

def change():
path = e.get()
for filename in os.walk(path):
for ele in filename:
if type(ele) == type([]) and len(ele)!=0:
for every_file in ele:

if every_file[0:6].isdigit():
number = every_file[0:6]
name = every_file[6:]
x = int(number)+y
newname = (str(x) + name)
os.rename(os.path.join(path, every_file), os.path.join(path, newname))

最佳答案

我不知道您对文件名有什么限制,因此我写了一个通用脚本来向您展示如何更改给定文件夹和所有子文件夹中的文件名。

测试文件夹具有以下树结构:

~/test$ tree
.
├── bye.txt
├── hello.txt
├── subtest
│   ├── hey.txt
│   ├── lol.txt
│   └── subsubtest
│   └── good.txt
└── subtest2
└── bad.txt

3 directories, 6 files

如您所见,所有文件都有 .txt 扩展名。

重命名它们的脚本如下:

import os


def main():
path = "/path/toyour/folder"
count = 1

for root, dirs, files in os.walk(path):
for i in files:
os.rename(os.path.join(root, i), os.path.join(root, "changed" + str(count) + ".txt"))
count += 1


if __name__ == '__main__':
main()

count 变量只有在每个文件有不同的名称时才有用;也许你可以摆脱它。

执行脚本后,文件夹如下所示:

~/test$ tree
.
├── changed1.txt
├── changed2.txt
├── subtest
│   ├── changed4.txt
│   ├── changed5.txt
│   └── subsubtest
│   └── changed6.txt
└── subtest2
└── changed3.txt

3 directories, 6 files

我认为您代码中的问题是您没有使用 os.walk 函数的实际 root

希望这对您有所帮助。

关于Python。重命名子目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com