Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件重命名为文件夹名的Python脚本_Python_Directory_Active Directory_Rename_Working Directory - Fatal编程技术网

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

将文件重命名为文件夹名的Python脚本,python,directory,active-directory,rename,working-directory,Python,Directory,Active Directory,Rename,Working Directory,我正在制作一个python脚本,将文件夹中的文件名更改为文件夹的相同名称。 例如,如果文件夹名为TestFolder,文件夹中的txt文件名为test,则脚本将使该文件名为TestFolder.txt 但是,如何使脚本在其所在目录之外工作? 下面是到目前为止我的代码,我希望我解释得足够好 import os temp = os.path.dirname(os.path.realpath(__file__)) src = "{temp}\\".format(temp=temp) def ren

我正在制作一个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)
解决方案很简单:如果不希望脚本的位置作为路径/文件夹,则不要这样做。把你想要的东西放在它的位置上。使用
cwd
(当前工作目录)在执行位置重命名;否则,请重新编码程序以接受文件夹名称作为输入。通过在线的许多例子,这两种方法都是现成的