2016-05-28 4 views
0

私はTempフォルダに一時ファイル(別のpythonスクリプト)を作成するpythonスクリプトを作成しようとしています。その後、この一時ファイルを実行する必要があります。temp(tempfile)のファイルを実行する

私はこのような何か書いた:私はそれを実行すると、私は

The process cannot access the file because it is being used by another process. 

エラーが出る

with tempfile.TemporaryFile(mode='w+b', suffix='.py') as temp: 
    stuff stuff stuff 
    temp.write(mycode.encode('utf-8')) 
    temp.seek(0) 
    os.system(temp.name) 

を。代わりにtempfile.mkstempを使用しようとしましたが( "close"関数がこれを処理することを期待しています)、何も変わりません。

私の質問は次のとおりです。tempフォルダにファイル、pythonスクリプトを作成して実行し、それを削除するにはどうすればよいですか?答えを

ありがとう:D

答えて

1

ラインos.system(temp.name)withクロージャの外でなければなりません。

ただし、ファイルがその時点までに削除されるため、ここでは機能しません。したがって、delete=FalseTemporaryFile()に渡す必要があります。

NamedTemporaryFileを使用することをお勧めします。

+0

外では、一時ファイルが既に削除されています –

+0

一時ファイルの 'with'の外側は破棄されます。 – bereal

+0

もちろん、もちろん 'delete = False'も関数に渡さなければなりません。 – j4hangir

関連する問題