我試圖創建一個文件。在這個文件中,我將需要處理的所有文件放在腳本中,並將該文件作爲參數傳遞。我的問題是,有時列表不夠長,無法填充緩衝區,也沒有任何內容寫入磁盤。我試圖刷新和fsync臨時文件,但沒有任何反應。腳本是第三方腳本,所以我無法改變參數傳遞的方式。Flush和fsync不能在臨時文件中工作
with tempfile.NamedTemporaryFile(bufsize=0) as list_file:
list_file.write("\n".join(file_list) + "\n")
list_file.flush()
os.fsync(list_file)
command = "python " + os.path.join(SCRIPT_PATH, SCRIPT_NAME) + " --thread --thread_file "
ppss_command = [SCRIPT_PATH + "/ppss", "-f", list_file.name, "-c", command]
p = subprocess.Popen(ppss_command)
out,err = p.communicate()
最終解決代碼(jterrace答):
with tempfile.NamedTemporaryFile(delete=False) as list_file:
list_file.write("\n".join(file_list) + "\n")
list_file.close()
command = "python " + os.path.join(SCRIPT_PATH, SCRIPT_NAME) + " --thread --thread_file "
ppss_command = [SCRIPT_PATH + "/ppss", "-f", list_file.name, "-c", command]
p = subprocess.Popen(ppss_command)
out, err = p.communicate()
list_file.delete = True
你在窗戶上? – jterrace