Python скрипт для переименования файла в имя папки - PullRequest
0 голосов
/ 18 марта 2020

Я делаю сценарий 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()

1 Ответ

0 голосов
/ 18 марта 2020

Ваша проблема в том, что у вас возникли проблемы с указанием местоположения скрипта в качестве пути переименования:

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 (текущий рабочий каталог) для переименования в месте выполнения; в противном случае, перекодируйте вашу программу, чтобы принять имя папки в качестве ввода. Любой из них легко доступен через множество примеров в сети.

...