#環境
Windows10
python3.7
前提・実現したいこと
windowsのコマンドプロンプトで実現していることをPython上で実行し、
自動化につなげたい。
試したこと
osモジュールを使い、subprocessと同じことが出来ると聞いたので、osでも同じ動作をするようにコードを組んだが、思った通りの結果を得ることが出来ない。
下記の参考リンクをもとに自分でコードを組んでみたが、実装することが出来ないです。
python import subprocess CDで移動できない
Calling an external command from Python
subprocess — Subprocess management
【Python入門】subprocessを使ってコマンドを実行しよう!
初心者でも簡単!PythonでWindowsのアプリケーションを起動する方法
Pythonからコマンドを呼び出す(Windows編)
Pythonでexeテスト実行
Python から外部プログラムを起動する (subprocess.run)
Pythonで特定のファイルをアプリケーションで開く方法とフォルダを開く方法
Pythonによる外部プログラム、プロセス、アプリの起動実行方法
【Python】subprocess の run や Popen で実行時のフォルダを指定する方法 ⇒ 引数 cwd を使う
subprocessを使って外部プログラムを実行する
Pythonから外部プログラムを起動
Pythonで特定のファイルをアプリケーションで開く方法とフォルダを開く方法
Pythonによる外部プログラム、プロセス、アプリの起動実行方法
発生している問題・エラーメッセージ
エラーメッセージ文字化けしていて読めないです。
�t�@�C�����A�f�B���N�g�����A�܂��̓{�����[�� ���x���̍\�����Ԉ���Ă��܂��B
###コマンドプロンプトでの実行結果
C:\Users\Desktop\>loopUBP.exe .\setValueAll.txt not Continue
この状態で、指定の動作がパソコンで実行されます。
該当のソースコード
Python
1# import subprocess 2# 3place = 'cd C:/Users/Desktop/' 4value = 'test.exe ./test.txt' 5 6place=place.split() 7value=value.split() 8 9# 10# # proc = subprocess.run(place, shell=True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) 11# # print(proc.stdout.decode("cp932")) 12# # print(place) 13# # 14# # proc = subprocess.run(value, shell=True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) 15# # print(proc.stdout.decode("cp932")) 16# # print(value) 17# 18# try: 19# proc = subprocess.run(place, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 20# # print(proc.stdout.decode("cp932")) 21# proc2 = subprocess.run(value, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 22# # print(proc.stdout.decode("cp932")) 23# 24# except: 25# print('Error') 26 27 28import subprocess 29import sys 30import os 31# res1=os.system(place) 32res1=subprocess.call(place,shell=True) 33# res2=os.system(value) 34res2=subprocess.run(value,shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 35print(res1,res2) 36sys.stdout.buffer.write(res2.stdout)
#教えていただきたいこと
どのように、コードを変えればいのか?
また、どうやって解決方法を導き出したか教えていただきたいです。
あと、公式ドキュメントをうまく読むコツがありましたら、教えていただきたいです。
自力で解決できるようになりたいので!
###よろしくお願いいたします。
至らない点もあると思いますが、よろしくお願いいたします。
#回答(追記)
お二方の回答をまとめて、一番短くした回答です。
ドキュメントを読むと、すさまじく短くできることがわかりました。
本当に感謝します。
下記のようにまとめることが出来ます。
Python
1import subprocess 2place = r'C:\Users\Desktop' 3value = r'test.exe .\test.txt' 4 5subprocess.check_call(value.split(), cwd=place,shell=True) 6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/19 04:16
2019/12/19 04:19
2019/12/19 04:54
2019/12/19 05:22
2019/12/19 05:53
2019/12/19 07:22
2019/12/19 07:28