tempfileモジュールエラー:PermissionError:[Errno 13]Permission deniedの解決方法

1146 ワード

問題の説明:
私はwin 10のコンピュータの上でpythonのtempfileモジュールのNamedTemporaryFile関数で1つの臨時のファイルを創立してそして内容を書き込んで、この臨時のファイルを開けて読んで間違いを報告して、間違いを報告する情報は以下の通りです:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\22768\\AppData\\Local\\Temp\\tmp5qk5l_6_'
問題の分析:
このようにして作成された一時ファイルは、linuxシステムではファイルを閉じずに読み取り内容を再開できるが、windowsシステムでは閉じずに再開する権限がないことが確認された.また、ファイルのデフォルトは、いったん閉じると自動的にクリアされます.ファイルを閉じないと開く権限がないという矛盾があります閉じるとファイルがなくなり、開くことができません.
この問題を解決するには、3つの重要なステップが必要です.
  • NamedTemporaryFileのパラメータを変更し、ファイルが閉じても自動的にクリーンアップされないようにします.
  • を読み込む前に閉じます.
  • パソコンにゴミを残さないように、私たちは別のコード「手動」を書いてこの一時ファイルを整理します.

  • コード実装:
    import tempfile,json,os
    data=[{'name':'Jessica','lang':('Python','English'),'age':27}]
    f=tempfile.NamedTemporaryFile(mode='w',delete=False)
    #      ,delete   False,             
    json.dump(data,f)
    f.close()
    #            
    print(open(f.name,'r').read())
    f.close()
    os.remove(f.name)
    #                  

    端末:[{"name":"Jessica","lang":["Python","English"],"age":27}]