subprocess.Popen()を使用して、ファイルパスを引数としてコマンドを実行しようとしています。これは失敗し、Popen()はコマンドに渡された引数リストにカレントディレクトリを追加しているようです。Python Popenは現在のディレクトリを引数に追加していますか?
[email protected]:~/Downloads/pycharm-community-2016.3.2/bin$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> vm_root = "/mas_data/vms/"
>>> vm_path = "\"" + vm_root + "XP VM 1/XP VM 1.vmx\""
>>> vm_path
'"/mas_data/vms/XP VM 1/XP VM 1.vmx"'
>>> subprocess.Popen(["vmrun", "start", vm_path])
<subprocess.Popen object at 0x7f6b9225c898>
>>> Error: Cannot open VM: /home/phil/Downloads/pycharm-community-2016.3.2/bin/"/mas_data/vms/XP VM 1/XP VM 1.vmx", unknown file suffix
exit()
[email protected]:~/Downloads/pycharm-community-2016.3.2/bin$ vmrun start "/mas_data/vms/XP VM 1/XP VM 1.vmx"
<VM launches>
ない私はpopenのが仕事と事前にコマンドをvmrun start "/mas_data/vms/XP VM 1/XP VM 1.vmx"
感謝を実行するために取得するために欠けているものを確認してください!
パスを引用符で囲んではいけません。 'Popen'を使うときは、引用符でパスを無効にするだけです。 –
あなたは単一の文字列引数だけを渡すときに 'Popen'でそれを必要とします。 –