繁体   English   中英

在Python 3中使用os.walk重命名文件和文件夹

[英]Renaming files and folders with the os.walk in Python 3

我正在尝试重命名给定目录中的所有文件和文件夹。 我想用连字符替换空格,然后将所有重命名为小写。 我坚持下面的代码。 注释掉os.rename时,打印功能将按预期返回所有文件,但是,当我取消注释os.rename时,我收到一条错误消息,指出找不到XYZ-> xyz文件。

import os

folder = r"C:\Users\Tim\Documents\storage"
space = " "
hyphen = "-"

for root, dirs, files in os.walk(folder):
    for file in files:
        if space in file:
            newFilename = filename.replace(space, hyphen).lower()
            os.rename(file, newFilename)
            print(newFilename)

很明显,这仅用于文件,但我也想将相同的逻辑应用于文件夹。 任何帮助将不胜感激。 Python非常新,所以这超出了我! 非常感谢。

os.rename()解析相对于当前工作目录的相对文件路径(在Linux / Mac中不是以/开头的路径,在Windows中不是以驱动器号开头的路径)。

您将需要先使用root将名称os.path.join()传递给os.rename() ,否则重命名将在当前工作目录而不是原始文件夹中查找具有该名称的文件。

因此应该是:

os.rename(os.path.join(root, file), os.path.join(root, newFilename))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM