Windowsでのお話です。
tkinter.filedialog.asksaveasfilename()で指定したファイルがあるフォルダを開きたいとします。
直感的に以下のコードを書きます。
from subprocess import Popen
from tkinter.filedialog import asksaveasfilename
file_path = asksaveasfilename() # D:\github\sample.json を選択する
if file_path:
Popen(['explorer', '/select,'+file_path])
#=> PCが開く
なんで???
print(file_path)
D:/github/sample.json
セパレータがバックスラッシュではなくスラッシュになっている。
from os.path import sep
from subprocess import Popen
from tkinter.filedialog import asksaveasfilename
file_path = asksaveasfilename() # D:\github\sample.json を選択する
if file_path:
file_path = file_path.replace('/', sep) # '/'をプラットフォームのセパレータに置換
Popen(['explorer', '/select,'+file_path])
#=> D:\githubが開く
ヨシ!