質問するログイン新規登録

質問編集履歴

7

文法修正

2021/05/02 04:37

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -74,7 +74,6 @@
74
74
  # 追記
75
75
 
76
76
  ドキュメントには下記のように書かれてました。
77
- フォルダ名またはファイル名に半角スペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
78
77
 
79
78
  [subprocess --- サブプロセス管理¶](https://docs.python.org/ja/3/library/subprocess.html)
80
79
 

6

文法修正

2021/05/02 04:36

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -74,7 +74,7 @@
74
74
  # 追記
75
75
 
76
76
  ドキュメントには下記のように書かれてました。
77
- ファイル名にスペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
77
+ ォルダ名またはファイル名に半角スペースが入っていた場合も、shell=TrueでできたのでわざわざFalseで使う場面が想像できませんでした。
78
78
 
79
79
  [subprocess --- サブプロセス管理¶](https://docs.python.org/ja/3/library/subprocess.html)
80
80
 

5

文法修正

2021/05/02 04:34

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -74,7 +74,7 @@
74
74
  # 追記
75
75
 
76
76
  ドキュメントには下記のように書かれてました。
77
- これもshell=Trueで対応できな気すが
77
+ ファイル名にスペースが入っていた場合shell=TrueでできたのでわざわざFalseで使場面想像できせんでした
78
78
 
79
79
  [subprocess --- サブプロセス管理¶](https://docs.python.org/ja/3/library/subprocess.html)
80
80
 

4

追記

2021/05/02 04:33

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -69,4 +69,13 @@
69
69
  となります。
70
70
 
71
71
  shell=Falseを指定した場合のメリットってありますか?
72
- 普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。
72
+ 普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。
73
+
74
+ # 追記
75
+
76
+ ドキュメントには下記のように書かれてました。
77
+ これもshell=Trueで対応できそうな気がしますが。
78
+
79
+ [subprocess --- サブプロセス管理¶](https://docs.python.org/ja/3/library/subprocess.html)
80
+
81
+ > args はすべての呼び出しに必要で、文字列あるいはプログラム引数のシーケンスでなければなりません。一般に、引数のシーケンスを渡す方が望ましいです。なぜなら、モジュールが必要な引数のエスケープやクオート (例えばファイル名中のスペースを許すこと) の面倒を見ることができるためです。単一の文字列を渡す場合、shell は True でなければなりません (以下を参照)。もしくは、その文字列は引数を指定せずに実行される単なるプログラムの名前でなければなりません。

3

文法修正

2021/05/02 04:30

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -60,13 +60,13 @@
60
60
  と出てきます。
61
61
 
62
62
  Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです。
63
- "ls -a" というコマンドの場合は、
63
+ 例えば、"ls -a" というコマンドを実行するときは、
64
64
  ```
65
65
  import subprocess as sp
66
66
  ret = sp.run(["ls", "-a"], stdout=sp.PIPE)
67
67
  ```
68
68
 
69
- す。
69
+ となります。
70
70
 
71
71
  shell=Falseを指定した場合のメリットってありますか?
72
72
  普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。

2

説明の例追加

2021/05/02 04:17

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -60,6 +60,13 @@
60
60
  と出てきます。
61
61
 
62
62
  Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです。
63
+ "ls -a" というコマンドの場合は、
64
+ ```
65
+ import subprocess as sp
66
+ ret = sp.run(["ls", "-a"], stdout=sp.PIPE)
67
+ ```
63
68
 
69
+ です。
70
+
64
71
  shell=Falseを指定した場合のメリットってありますか?
65
72
  普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。

1

文法修正、ソースコードコメント追加

2021/05/02 04:16

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -3,10 +3,10 @@
3
3
  ```Python
4
4
  import subprocess as sp
5
5
 
6
- cmd = "dir"
6
+ cmd = "dir" # Linuxの場合は "ls"
7
7
  ret = sp.run(cmd, stdout=sp.PIPE, shell=True)
8
8
 
9
- print(ret.stdout.decode("cp932"))
9
+ print(ret.stdout.decode("cp932")) # Linuxの場合は "utf-8" または 指定なし
10
10
  ```
11
11
 
12
12
  を実行すると
@@ -59,6 +59,7 @@
59
59
 
60
60
  と出てきます。
61
61
 
62
- Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようですが、shell=Falseを指定した場合のメリットってありますか?
62
+ Linuxだとコマンド文をスペース区切りのリストで引数に指定してあげればいいようです
63
63
 
64
+ shell=Falseを指定した場合のメリットってありますか?
64
65
  普通に使う分にはshell=Trueにすればいいような気がしたのですが、shell=Falseとして実際に使う場面が想像できなかったので。