该程序采用一个可选的命令行参数(这是一个目录路径)
我正在使用 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() 作为路径),则 / 运算符可以正常工作
如果您正在使用该模块,请使用 的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)