Python 将文件重命名为文件夹名称的脚本

Python script to rename a file to the folder name

我正在制作一个 python 脚本来将文件夹中的文件名更改为文件夹的同名文件。 例如,如果文件夹名为 TestFolder,文件夹中的 txt 文件名为 test,则脚本将使文件名为 TestFolder.txt.

但是,如何使脚本在其所在目录之外工作? 下面是我到目前为止的代码,我希望我解释得足够好。

import os

temp = os.path.dirname(os.path.realpath(__file__))
src = "{temp}\".format(temp=temp)

def renamer():
    path = os.path.dirname(src)
    folder = os.path.basename(path)
    os.rename("{directory}\{file}".format(directory=src, file=listDir()),
              "{directory}\{file}.txt".format(directory=src, file=folder))


def listDir():
    for file in os.listdir(src):
        if file.endswith(".txt"):
            return file


def main():
    print("Hello World")

    print(listDir())
    renamer()
    print(listDir())


if __name__ == "__main__":
    main()

您的问题是您在将脚本位置指定为重命名路径时遇到了一些麻烦:

temp = os.path.dirname(os.path.realpath(__file__))
src = "{temp}\".format(temp=temp)

def renamer():
    path = os.path.dirname(src)
    folder = os.path.basename(path)

解决方案很简单:如果您不希望脚本的位置为 path/folder,则不要这样做。把你想要的放在它的位置。在执行位置使用cwd(当前工作目录)重命名;否则,重新编码您的程序以接受文件夹名称作为输入。这些中的任何一个都可以通过许多在线示例轻松获得。