11616


pythonでボタンを押すと指定されたファイルが開く簡潔なランチャーを作っていたのですが、指定したファイルを開こうとするとPermissionError:
Permission deniedというエラーが出てしまいます。  
どうすれば解決するでしょうか。OSはWindowsで管理者権限でアクセスしてます。  
ちなみにコード全文は以下の通りです。

[code]

    class Frame(Tk.Frame):
    
    
        def __init__(self, master = None):
            Tk.Frame.__init__(self, master, width=1000, height=1000)
            self.master.title("簡易ランチャー")
    
            la = Tk.Button(self, text = "novel", command = self.f_open)
            la.pack()
    
            lb = Tk.Button(self, text = "programs", command = self.f_open)
            lb.pack()
    
        def f_open(self):
            f = open(r"C:\Users\hoge\Documents\python programs", "r", encoding="utf-8")
            f.close()
    
    
    if __name__ == '__main__':
        f = Frame()
        f.pack()
        f.mainloop()
    
[/code]


CC BY-SA 3.0
2015-06-22T06:12:18.067
11601
2015-06-22T12:43:48.453
2015-06-22T07:26:46.973
806
9597
question
python tkinter
pythonでファイルを開こうとしたらPermissionError: Permission deniedというエラーが出てしまいました


もしかして、「開く」と言うのは、ファイルを読み取りたいわけではなく、Windows上でフォルダを開いたりアプリケーションを実行したい、ということですか？  
Windowsであればos.startfileを使うのが分かりやすいと思います。

[code]

    import os
    os.startfile('C:\Program Files\....\foobar.exe')
    os.startfile('http://www.google.com/')
    
[/code]

<http://docs.python.jp/2/library/os.html#os.startfile> をご参照下さい。

Windows以外では、

[code]

    import subprocess
    subprocess.call(['open', 'filename'])
    
[/code]

がお勧めです。


CC BY-SA 3.0
2015-06-22T12:43:48.453
11616
2015-06-22T12:43:48.453
6092
11601
answer