Переименование расширения файла с использованием pathlib (python 3) - PullRequest
0 голосов
/ 11 января 2019

Я использую windows 10 и winpython. У меня есть файл с расширением .dwt (это текстовый файл). Я хочу изменить расширение этого файла на .txt.

Мой код не выдает никаких ошибок, но не меняет расширение.

from pathlib import Path

filename = Path("E:\\seaborn_plot\\x.dwt")

print(filename)

filename_replace_ext = filename.with_suffix('.txt')

print(filename_replace_ext)

Ожидаемые результаты выводятся (как показано ниже) в окне вывода winpython ipython:

E: \ seaborn_plot \ x.dwt

E: \ seaborn_plot \ x.txt

Но когда я ищу файл с переименованным расширением, расширение не было изменено, существует только исходный файл. Я подозреваю, что разрешения для файлов Windows.

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Из документов:

<a href="https://docs.python.org/3/library/pathlib.html#pathlib.Path.rename" rel="nofollow noreferrer">Path.rename(<i>target</i>)</a>

Переименуйте этот файл или каталог в указанную цель . В Unix, если target существует и является файлом, он будет автоматически заменен, если у пользователя есть разрешение. target может быть строкой или другим объектом пути.

pathlib - пути объектно-ориентированной файловой системы на docs.python.org

Вы можете использовать это так:

from pathlib import Path


filename = Path("E:\\seaborn_plot\\x.dwt")
filename_replace_ext = filename.with_suffix(".txt")
filename.rename(filename_replace_ext)
0 голосов
/ 11 января 2019

Вы должны фактически переименовать файл, а не просто распечатать новое имя.

from pathlib import Path
import os
filename = Path("E:\\seaborn_plot\\x.dwt")
print(filename)
filename_replace_ext = filename.with_suffix('.txt')
print(filename_replace_ext)
os.rename(filename, filename_replace_ext)
...