У меня есть python скрипт, который работает с другой программой через API. Мне нужно отправить программе каталог файла. Проблема, с которой я столкнулся, заключается в том, что мне нужно учитывать возможную разницу в путях, если скрипт и программа находятся на разных машинах и / или ОС. Если скрипт и программа находятся на одной машине, это не проблема. Но если они находятся на разных компьютерах, компьютер со сценарием будет иметь сетевой путь:
script (подключенный сетевой диск): Z:\files\file.txt
программа: /mnt/user/disk1/files/file.txt
Таким образом, диск Z указывает на подключенный сетевой диск, к которому у программы есть доступ.
import pathlib
location = 'Z:\\files\\file.txt'
map_source = 'Z:\\'
map_destination = '/mnt/user/disk1/'
newpath=(location.replace(map_source, ''))
print(pathlib.PurePath(map_destination, newpath))
Поэтому, если я задаю сценарий Z:\files\file.txt
в качестве входных данных, он должен удалить Z:\
из location
и замените его на /mnt/user/disk1/
и верните /mnt/user/disk1/files/file.txt
. Проблема в том, что он возвращается с неправильными косыми чертами:
\mnt\user\disk1\files\file.txt
Как я могу определить, какими должны быть правильные косые черты? Насколько я понимаю, PurePath
будет делать правильный sla sh в зависимости от ОС, в которой запускается скрипт, но я могу запустить его на машине Windows и отправить путь на машину Linux. Я понимаю, что, возможно, я могу сделать это вручную с помощью регулярных выражений или чего-то еще, но есть ли способ с libpath
или каким-то уже существующим модулем? Я не могу просто сказать, что конвертировать, я не знаю, какой системой будет пункт назначения. Я предполагаю, что это должно было бы проанализировать это и выяснить это.