🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

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

Q&A

解決済

2回答

1234閲覧

「プログラムから開く」からPythonで作ったプログラムで開いたファイルの情報を取得したい

sakuramochi_py

総合スコア32

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

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

0グッド

0クリップ

投稿2020/12/15 14:34

編集2020/12/16 07:49

#実現したいこと
エクスプローラーで、
0. ファイルを右クリック
0. プログラムから開く
0. 別のプログラムを選択
0. その他のアプリ
0. このPCで別のアプリを探す

からそのファイルを開くアプリを選択できるが、
そのアプリに内容を取得し表示させる仕組みをPythonで作りたい

###簡単に言うと
Pythonで、メモ帳のようにある特定の拡張子のファイルをクリックしたらそのファイルの内容を取得し編集できるアプリを作りたい。

#わからないこと
Pythonで作ったアプリで開いたファイルの内容を取得する方法

Pythonで作ったアプリで開いたファイルの__絶対パス__を取得する方法。
or そもそも可能なのか

#試したこと
test.py

Python

1import os 2print(os.path.abspath(__file__)) 3input()

をexe化し、「実現したいこと」の1~5、test.exeを選択し開いてみる
#####結果
全てそのtest.exeファイルの絶対パスが表示され、開いたファイルの絶対パスは取得できなかった。

#環境
Python-3.9.1
Pyinstaller-4.1
Windows 10

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

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

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

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

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

argparse

2020/12/15 17:33

`sys.argv` の話ですか?
sakuramochi_py

2020/12/16 07:58

コマンドライン引数ではないと思います
bsdfan

2020/12/16 11:03

コマンドライン引数の話だと思います。test.exeでsys.argvを表示するようにして試してみたらどうでしょう。 ただexe化の方法次第でsys.argvを受け取れない場合もあるようです。
sakuramochi_py

2020/12/16 11:08

なんと!! ありがとうございます 試してみます
guest

回答2

0

いまいちしつもんがよくわかってませんが、
ファイルのパスを表示すればいいという話でしょうか
それなら可能ですよ

投稿2020/12/15 20:37

y_waiwai

総合スコア88038

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

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

y_waiwai

2020/12/16 12:56

print(sys.argv[1]) ってことで
guest

0

自己解決

test.py

Python

1import sys 2print(sys.argv) 3input()

argparseさんとbsdfanさんの回答(?)を参考にしました。
exe化はpyinstallerを使い、test.exeもtest.pyと同様に動作しました。

投稿2020/12/16 11:45

sakuramochi_py

総合スコア32

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問