質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

650閲覧

Pythonからコマンドラインでアプリを実行したい

tttosure

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/02/05 14:30

編集2023/02/07 12:44

Pythonからコマンドラインでアプリを実行したい

普段はコマンドプロンプトに直接以下のコードを書いて実行するのですが、
これをPythonで実行させることは可能でしょうか?
"[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat -c "path\to[your credential file name].json" -t "path\to[your flow file name].tfl"

試したこと

subprocess.run()が使えると思ったのですが、コードの書き方がわからず・・
各ファイルパス(batファイル、Jsonファイル、tflファイル)を変数に持たせて、処理したいと思っております
import openpyxl
wb = openpyxl.load_workbook('設定ファイル.xlsx')
ws = wb['Config']
bat_path = ws['B7'].value
tfl_path = ws['B8'].value
json_path = ws['B9'].value

import subprocess
cmd = ['bat_path -c json_path -t tfl_path']
subprocess.run(cmd)
実行すると「FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。」となります

補足情報(FW/ツールのバージョンなど)

Python 3.7.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PondVillege

2023/02/05 14:34

subprocess.run()ってそんなに難しいですか?具体的にどこで詰まっているのでしょうか,またjsonとtflファイルのパス指定に汎化性を持たせるようにする予定だったりしますでしょうか?
tttosure

2023/02/07 03:30

すみません。私の理解不足でsubprocess.run()のエラーで躓いております。 試したことにコードを追記しました。どこに問題があるのか、ご教示ただけましたら嬉しいです。
tttosure

2023/02/07 03:43 編集

度々すみません。。 以下に変更したらできました! cmd = [bat_path,'-c',json_path,'-t',tfl_path] ご質問いただき、ありがとうございました!!!
guest

回答1

0

ベストアンサー

素直にsubprocess.runでぐぐってでてきたところですが、

【Python】subprocessのよく使う奴だけまとめたサンプルコード集 | 底辺プログラマーの戯言
https://www.mathkuro.com/python/subprocess-popular-usage/

ってのでどうでしょう

投稿2023/02/05 22:30

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tttosure

2023/02/07 03:44

参考サイトありがとうございます!! コードを修正したところ、無事にできました! cmd = [bat_path,'-t',tfl_path] 基本的なところでミスってました。お時間割いていただき、ありがとうございました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問