2016-07-22 4 views
-4

たとえば、HTMLファイルを開くと、Chromeで開くように設定されています。ここで、与えられたファイルタイプを開くためのpythonスクリプトを設定したら、スクリプト内でこのファイルにアクセスするにはどうすればいいですか?それはどこから入手できますか?ファイルを開くときOSがスクリプトを開いてそのファイルを開くときにPythonからファイルにアクセスするにはどうすればいいですか?

+0

をあなたは 'A'が' B'にアクセスできるか、 'B'が' A'にアクセスすることができるかを尋ねていますか? –

+0

'A'が' B'にアクセスする方法。 (逆の意味があるのでしょうか?それがいつ適用可能かを考えようとしています)....しかし、なぜこれはGoogleにとってやや難しいのか分かります。 – Aerovistae

+0

ファイルにアクセスするときに "python **スクリプト**を指定のファイルタイプを開くものにする"ことはできません。単にエラーを返すだけです。恐らくスクリプトがexeに変換されている可能性があります –

答えて

1

、オペレーティングシステムが責任オープナープログラムを起動し、command line argumentsとしてオープンするファイル(複数可)を渡します。

path/to/opener_executable path/to/file1_to_be_opened path/to/file2_to_be_opened ... 

あなたはPythonスクリプトでsys.argvを介してコマンドライン引数にアクセスすることができます。最小限の例:

import sys 

print("I'm supposed to open the following file(s):") 
print('\n'.join(sys.argv[1:])) 
+0

上記のK Dawgさんのコメントは不正確です。スクリプトは.exe '化されずにこの状況を処理できますか? – Aerovistae

+0

@Aerovistaeはい、特定のファイルタイプを 'python.exe my_opener_script.py'コマンドで開くように設定することができます。これにより、スクリプトが起動され、パラメータが渡されます。あるいは最悪のシナリオでは、Pythonスクリプトを起動してパラメータを渡す '.bat'スクリプトを作成することができます。 –

+0

@Rawingあなたはバットスクリプトを作る必要があるでしょう。したがって、私の最初の声明は正しかったです。あなたはWindowsでファイルオープナーとしてpython *スクリプト*を割り当てることはできません。 –

0

Linux上で、あなたが 『他のアプリケーションで開く』と実行可能ファイルを作っあなたのPythonスクリプトを選択し、Rawingのポイントを証明します。
sys.argvは、引数の0としてスクリプトの名前を提供し、その後は他のパラメータのリストを提供します。ファイルを開く

myopener.py

#!/usr/bin/env python 
import sys, os 
x=os.open('/home/rolf/myopener.output',os.O_RDWR|os.O_CREAT) 
xx = os.fdopen(x,'w+') 
y=str(sys.argv) 
xx.write(y) 
xx.close() 

myopener.pyでabc.dddファイルmyopener.output内容作成します。私たちは、ファイルが 'B'と開口部をやって、スクリプトを開いている呼び出した場合

['/home/rolf/myopener.py', '/home/rolf/abc.ddd'] 
関連する問題