回答編集履歴

1

追記

2018/05/27 11:04

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -5,3 +5,23 @@
5
5
  result = subprocess.run('python self.py', shell=True, check=True, # result = の行を書き換え
6
6
 
7
7
  ```
8
+
9
+
10
+
11
+ 複数の引数でコマンドを指定することはできないので、こうする必要があります。下のようにしても良いです。
12
+
13
+
14
+
15
+ ```python
16
+
17
+ result = subprocess.run('python self.py'.split(), check=True, # この場合shell=Trueは外して良い
18
+
19
+ # あるいは
20
+
21
+ result = subprocess.run(['python', 'self.py'], check=True, # 上と同じことだが、リストにして与える
22
+
23
+ ```
24
+
25
+
26
+
27
+ No such file or directoryが出たら、フルパスでの指定を試してください。もしwindows環境だと、パスに入る`\`がエスケープと解釈されるので注意。その場合は文字列の先頭にrを付けて`r'path'`とし、raw string扱いにして回避できます。