因此,我通過一個目錄運行一個循環,其中由subprocess.Popen運行的外部腳本正在移動目錄並對每個文件執行計算。外部腳本有點不穩定,偶爾會在運行到不知道如何處理的文件中時凍結。有沒有辦法給subprocess.Popen添加一個超時函數,這樣我就可以跳過那個文件並轉到下一個?在Python中循環期間設置超時?
編輯: 這裏是我的循環:
def automate():
os.chdir("/home/mlts/dir")
working_dir = b"/home/mts/dir"
for filename in os.listdir(working_dir):
if filename.endswith(".MTS"):
try:
print("Performing calculations on {filename!r}...".format(**vars()))
try:
os.remove("mts_tbl.txt")
except OSError:
pass
time.sleep(3)
p = Popen(["run_command.command", "-f", "a"], cwd=working_dir, stdin=PIPE)
p.communicate(input=b"\n".join([b"1", str(filename), b"8", b"alloy-liquid", b"0", b"x", b"5", b"4", b"-1.6", b"4", b"1", b"0"]))
人們可以幫你超過超時部分,但跳過文件腳本凍結,你必須提供代碼 – MohitC
明白了。提供編輯... – Scott
您缺少os.chdir行上的最後一行 –