尝试在 Path 对象 Python 上使用 /

3 python file pathlib

该程序采用一个可选的命令行参数(这是一个目录路径)

我正在使用 python pathlib 和 shutil 来移动文件。这是代码:

from pathlib import Path

path = Path(sys.argv[1])

shutil.move(path / file, path / e.upper())
Run Code Online (Sandbox Code Playgroud)

其中 e 只是一个代表特定文件扩展名的字符串;

输入:

 python3 app.py /home/user/Desktop
Run Code Online (Sandbox Code Playgroud)

此代码生成错误:

'PosixPath' object has no attribute 'rstrip'
Run Code Online (Sandbox Code Playgroud)

如果我没有在命令行中指定第二个参数(并使用 Path.cwd() 作为路径),则 / 运算符可以正常工作

Dun*_*nes 5

如果您正在使用该模块,请使用 的rename功能Path来移动文件pathlib

IE。

(path / file).rename(path / e.upper())
Run Code Online (Sandbox Code Playgroud)

否则,如果您希望使用该shutil模块,则必须将路径转换为字符串,然后再将它们传递给shutil.move()

IE。

shutil.move(str(path / file), str(path / e.upper()))
Run Code Online (Sandbox Code Playgroud)