Вот мой код:

file_list = os.listdir("/home/vanessa/prank")   

    def rename_files():
        # current_dir = os.getcwd()

        for file_name in file_list:
            os.rename(file_name, file_name.translate(None, "0,1,2,3,4,5,6,7,8,9"))


rename_files()

Когда я бегу, я получаю

os.rename (имя_файла, имя_файла.translate (нет, "0,1,2,3,4,5,6,7,8,9")) Ошибка OSE: [Errno 2] Нет такого файла или каталога

0
Vanessa 26 Авг 2017 в 20:10

3 ответа

Лучший ответ

Вы должны указать полный путь к вашему файлу, а не только относительный путь. Вы можете сделать это, вызвав os.getcwd и присоединив результат к хвосту с помощью os.path.join.

def rename_files():
    root = "/home/vanessa/prank"

    for file_name in file_list:
        os.rename(os.path.join(root, file_name), 
                  os.path.join(root, file_name.translate(None,
                                                   "0,1,2,3,4,5,6,7,8,9")))
1
cs95 26 Авг 2017 в 17:29

Os.listdir () возвращает только имена файлов, а не пути. добавить путь к файлам.

0
akp 26 Авг 2017 в 17:13

Попробуйте абсолютный путь вместо относительного пути

file_list = os.listdir("/home/vanessa/prank")

Кому

file_list = os.listdir("C:/home/vanessa/prank")
-2
Victor Johnzon 26 Авг 2017 в 17:11