回答編集履歴
1
追記
test
CHANGED
@@ -2,4 +2,27 @@
|
|
2
2
|
|
3
3
|
エディターでプログラムソースを変更したいということなら、エディターの文字列置換機能を使います。
|
4
4
|
|
5
|
+
#追記
|
6
|
+
なんか全然違う質問になりましたね。二重引用符と一重引用符は、Pythonでは同じ意味ですが、Windowsで`subprocess.run` `shell=True`で起動される`cmd.exe`では全く別の意味です。一重引用符は引用符としての意味を持たず、普通の文字です。
|
7
|
+
```Python
|
8
|
+
誤: proc = subprocess.run("start 'https://www.google.co.jp/'", stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
|
9
|
+
正: proc = subprocess.run("start https://www.google.co.jp/", stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
|
10
|
+
```
|
5
11
|
|
12
|
+
一方、
|
13
|
+
```Python
|
14
|
+
url = 'https://search.yahoo.co.jp/search?p=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88+%26+%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97&fr=top_ga1_sa&ei=UTF-8&ts=1225&aq=-1&oq=&at=&ai='
|
15
|
+
proc = subprocess.run(f"start {url}", stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
|
16
|
+
```
|
17
|
+
の場合は、実行されるコマンドは、
|
18
|
+
`start https://search.yahoo.co.jp/search?p=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88+%26+%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97&fr=top_ga1_sa&ei=UTF-8&ts=1225&aq=-1&oq=&at=&ai=`となりますが、`&`はコマンドの区切りとなる特殊文字なので、二重引用符で囲む必要があります。
|
19
|
+
ただし、`cmd.exe`の`start`コマンドの直後に二重引用符で囲まれた文字列を書くと、それはウィンドウタイトルと見なされるので、単に二重引用符で囲むだけでは駄目で、その前にダミーのウィンドウタイトルを置く必要があります。
|
20
|
+
つまり、
|
21
|
+
```Python
|
22
|
+
url = 'https://search.yahoo.co.jp/search?p=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88+%26+%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97&fr=top_ga1_sa&ei=UTF-8&ts=1225&aq=-1&oq=&at=&ai='
|
23
|
+
proc = subprocess.run(f'start "" "{url}"', stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True)
|
24
|
+
```
|
25
|
+
です。
|
26
|
+
|
27
|
+
説明は簡潔にしたので不明点があれば聞いてください。
|
28
|
+
|