У меня есть архив .jar, который загружает файл, а затем выполняет некоторые действия с ним и снова записывает его на диск.Ошибка разрешения при запуске jar из python
Если я вызываю этот .jar непосредственно из командной строки, все работает. Но когда я пытаюсь сделать это внутри питона, я получаю следующее сообщение об ошибке:
Input file ("C:\xxx.txt") was not found or was not readable.
Это мой питон код:
import sys, os, subprocess
if os.path.isdir(sys.argv[1]):
for file in os.listdir("."):
print (" ".join(['java', '-jar', sys.argv[2], 'd', "\"" + os.path.abspath(file) + "\"", "\""+os.path.join(os.path.join(os.path.abspath(os.path.dirname(file)), "output"), file) + "\""]))
subprocess.call(['java', '-jar', sys.argv[2], 'd', "\"" + os.path.abspath(file) + "\"", "\""+os.path.join(os.path.join(os.path.abspath(os.path.dirname(file)), "output"), file) + "\""])
Когда я копирую печатное заявление в командной строке, то баночка выполняет в совершенстве; все работает. Я попробовал запустить cmd как администратор, но это не помогло.
Как примечание, вы можете просто написать '' '' 'вместо' '\" "'. Это намного более читаемо. – abarnert
Кроме того, вам не нужен 'os.path.join (os.path.join (foo, bar), baz)', просто 'os.path.join (foo, bar, baz)' будет делать то же самое , – abarnert
Спасибо за советы. Это первый раз, когда я использую os.path. * – Dauntless