質問編集履歴
7
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -150,8 +150,6 @@
|
|
150
150
|
|
151
151
|
ドキュメントには下記のように書かれてました。
|
152
152
|
|
153
|
-
フォルダ名またはファイル名に半角スペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
|
154
|
-
|
155
153
|
|
156
154
|
|
157
155
|
[subprocess --- サブプロセス管理¶](https://docs.python.org/ja/3/library/subprocess.html)
|
6
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -150,7 +150,7 @@
|
|
150
150
|
|
151
151
|
ドキュメントには下記のように書かれてました。
|
152
152
|
|
153
|
-
ファイル名にスペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
|
153
|
+
フォルダ名またはファイル名に半角スペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
|
154
154
|
|
155
155
|
|
156
156
|
|
5
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -150,7 +150,7 @@
|
|
150
150
|
|
151
151
|
ドキュメントには下記のように書かれてました。
|
152
152
|
|
153
|
-
|
153
|
+
ファイル名にスペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
|
154
154
|
|
155
155
|
|
156
156
|
|
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -141,3 +141,21 @@
|
|
141
141
|
shell=Falseを指定した場合のメリットってありますか?
|
142
142
|
|
143
143
|
普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
# 追記
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
ドキュメントには下記のように書かれてました。
|
152
|
+
|
153
|
+
これもshell=Trueで対応できそうな気がしますが。
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
[subprocess --- サブプロセス管理¶](https://docs.python.org/ja/3/library/subprocess.html)
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
> args はすべての呼び出しに必要で、文字列あるいはプログラム引数のシーケンスでなければなりません。一般に、引数のシーケンスを渡す方が望ましいです。なぜなら、モジュールが必要な引数のエスケープやクオート (例えばファイル名中のスペースを許すこと) の面倒を見ることができるためです。単一の文字列を渡す場合、shell は True でなければなりません (以下を参照)。もしくは、その文字列は引数を指定せずに実行される単なるプログラムの名前でなければなりません。
|
3
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -122,7 +122,7 @@
|
|
122
122
|
|
123
123
|
Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです。
|
124
124
|
|
125
|
-
"ls -a" というコマンド
|
125
|
+
例えば、"ls -a" というコマンドを実行するときは、
|
126
126
|
|
127
127
|
```
|
128
128
|
|
@@ -134,7 +134,7 @@
|
|
134
134
|
|
135
135
|
|
136
136
|
|
137
|
-
|
137
|
+
となります。
|
138
138
|
|
139
139
|
|
140
140
|
|
2
説明の例追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -122,6 +122,20 @@
|
|
122
122
|
|
123
123
|
Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです。
|
124
124
|
|
125
|
+
"ls -a" というコマンドの場合は、
|
126
|
+
|
127
|
+
```
|
128
|
+
|
129
|
+
import subprocess as sp
|
130
|
+
|
131
|
+
ret = sp.run(["ls", "-a"], stdout=sp.PIPE)
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
です。
|
138
|
+
|
125
139
|
|
126
140
|
|
127
141
|
shell=Falseを指定した場合のメリットってありますか?
|
1
文法修正、ソースコードコメント追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,13 +8,13 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
cmd = "dir"
|
11
|
+
cmd = "dir" # Linuxの場合は "ls"
|
12
12
|
|
13
13
|
ret = sp.run(cmd, stdout=sp.PIPE, shell=True)
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
print(ret.stdout.decode("cp932"))
|
17
|
+
print(ret.stdout.decode("cp932")) # Linuxの場合は "utf-8" または 指定なし
|
18
18
|
|
19
19
|
```
|
20
20
|
|
@@ -120,8 +120,10 @@
|
|
120
120
|
|
121
121
|
|
122
122
|
|
123
|
-
Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです
|
123
|
+
Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです。
|
124
124
|
|
125
125
|
|
126
126
|
|
127
|
+
shell=Falseを指定した場合のメリットってありますか?
|
128
|
+
|
127
129
|
普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。
|