Как сослаться на файл в рабочей области, в подпроцесс Popen?
В настоящее время у меня есть программа, которая может загрузить изображение из Интернета и сохранить его в том же каталоге, в котором сохранен проект Python.
я использую
r=subprocess.Popen(["rundll32.exe","shimgvw.dll,ImageView_Fullscreen","C:\\pic.jpg"])
time.sleep(3)
r.kill()
чтобы просмотреть изображение, а затем закрыть его через некоторое время (что важно), однако, когда я изменяю путь с "C:\\pic.jpg
"до"C:\Users\...\assignment1\pic.jpg
"Я получаю ошибку Юникода в пути, и если я изменю начало пути на"C:\\
"(с двумя косыми чертами, не могу отформатировать:(), тогда я не получаю ошибки, но файл просто не открывается.
Всегда ли нужно ссылаться на путь из C:\ или есть какое-то умное слово, которое идет прямо в каталог по умолчанию?
urlretrieve("%s?%s" % (url,parameters),"pic.jpg")
этот метод используется для сохранения файла, который сохраняется в каталоге по умолчанию
1 ответ
Вы получаете ошибку из-за \U
в вашей строке, которую Python пытается интерпретировать как \Uxxxxxxxx
escape-последовательность (где x
s - шестнадцатеричные цифры для 32-битного порядкового номера Unicode). Проблема, которую вы получаете после удвоения первой обратной косой черты, вероятно, связана с какой-то другой escape-последовательностью позже в пути (\a
например, становится символом ASCII "BEL").
Вам нужно либо избежать всех обратных косых черт, либо сказать Python не искать escape-последовательности, сделав путь "необработанным" строковым литералом: r"C:\Users\...\assignment1\pic.jpg"