実行可能ファイルまたはバッチ ファイルへのユーザー指定のパスを受け取るコードがあります。パスを分割してファイル名とパス (末尾と先頭) を取得し、先頭を新しいプロセスの現在の作業ディレクトリとして使用します。パスにディレクトリが含まれていない場合は、正常に機能します。ただし、そうすると次のエラーが発生します。
WindowsError: [Error 2] The system cannot find the file specified
コード例:
def poop(self, path_to_program):
head, tail = path.split(path_to_program)
if(head.startswith('"')):
head = head.strip('"')
if(tail.endswith('"')):
tail = tail.strip('"')
if(head<>''):
p = Popen(tail, cwd=head, shell=False)
else:
p = Popen(tail)
path_to_program
分割せずに Popen に直接渡せば問題なく動作します。
何が悪いのかわからない。