pythonで指定したファイルを既定のプログラムで開きたい
Q&A
解決したいこと
PHPからファイルのディレクトリ、フォルダ名の文字列をpythonへ送ったのですが、python側で該当ファイルを開きたいです。
PHP
<?php
$arg1 = $data['image']['file_name'];
$arg2 = "C:\\xampp\\htdocs\\imagePosting\\images\\";
$command = "python exp.py " . escapeshellarg($arg1) . " " . escapeshellarg($arg2);
$output = array();
$return_var = 0;
exec($command, $output, $return_var);
echo implode("\n", $output);
?>
pythonで二つの値が読み取れていることは確認済みです。
PYTHON
import tkinter as tk
import os
import subprocess
import sys
def my_function(arg1, arg2):
root = tk.Tk()
root.title("arg1, arg2の値")
root.geometry("300x100")
label1 = tk.Label(root, text=f"arg1: {arg1}")
label1.pack()
label2 = tk.Label(root, text=f"arg2: {arg2}")
label2.pack()
root.mainloop()
if __name__ == "__main__":
my_function(sys.argv[1], sys.argv[2])
dir_path = os.path.join(r"arg2","arg1")
older_name = os.path.basename(os.path.normpath(dir_path))
subprocess.Popen(['start', r'dir_path'], shell=True)
# subprocess.Popen(f'explorer "{os.path.abspath(dir_path)}"')
しかし、このコードを実行してもwindows通知音?がするのみで、ファイルが開かれません。以下のサイトを参考に、既定のプログラムで画像ファイルが開かれるようにしたいです。
参考文献
・【Python】エクスプローラーの起動:指定したフォルダ・ファイルを開く(subprocessモジュール)https://office54.net/python/app/subprocess-explorer-folder
試したこと
✖dir_path に直接url指定は失敗。
dir_path = os.path.join(r"C:\xampp\htdocs\imagePosting\images\PHP.drawio.png")
older_name = os.path.basename(os.path.normpath(dir_path))
subprocess.Popen(['start', r'dir_path'], shell=True)
✖
path = r"arg2" + "arg1"
subprocess.Popen(['start◯', path], shell=True)
◯URLに直接url指定はうまく開きました。
subprocess.Popen(['start', r'C:\xampp\htdocs\imagePosting\images\PHP.drawio.png'], shell=True)
arg2,arg1の値を使用して開くように修正したいです。どなたかお力添えいただけますと幸いです。