Попытка использовать / на объекте Path Python - PullRequest
1 голос
/ 20 апреля 2020

Программа принимает необязательный аргумент командной строки (который подразумевается как путь к каталогу)

Я использую python pathlib и shutil для перемещения файлов. Вот код:

from pathlib import Path

path = Path(sys.argv[1])

shutil.move(path / file, path / e.upper())

Где e - просто строка, представляющая определенное расширение файла;

Ввод:

 python3 app.py /home/user/Desktop

Этот код генерирует ошибку:

'PosixPath' object has no attribute 'rstrip'

Оператор / работает нормально, если я не указываю второй аргумент в командной строке (и вместо этого использую Path.cwd () в качестве пути)

1 Ответ

1 голос
/ 20 апреля 2020

Используйте функцию rename Path для перемещения файла, если вы используете модуль pathlib.

ie.

(path / file).rename(path / e.upper())

В противном случае, если вы хотите sh использовать модуль shutil, то вы должны преобразовать свои пути в строки, прежде чем передавать их в shutil.move()

ie.

shutil.move(str(path / file), str(path / e.upper()))
...