使用pathlib重命名文件扩展名(python 3)

时间:2019-01-11 19:10:37

标签: python windows pathlib

我正在使用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 :(得分:1)

您实际上必须重命名文件,而不仅仅是打印出新名称。

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)

答案 1 :(得分:0)

从文档中

  

Path.rename(target)

     

将此文件或目录重命名为给定的 target 。在Unix上,如果 target 存在并且是文件,则在用户具有权限的情况下将以静默方式替换它。 target 可以是字符串,也可以是其他路径对象。

     

pathlib — Object-oriented filesystem paths on 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)