import os import subprocess import datetime import sys # 定义命令 command = "/home/star/anaconda3/envs/pfcfuse/bin/python /home/star/whaiDir/PFCFuse/test_IVF.py" # 获取当前时间并格式化为文件名 current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_file = f"/home/star/whaiDir/PFCFuse/logs/ans_log_{current_time}.log" try: # 打开文件用于写入 with open(output_file, 'w') as log_file: # 运行命令 process = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) # 循环读取输出 for line in process.stdout: # 同时打印到控制台和写入文件 print(line.strip()) log_file.write(line) log_file.flush() # 确保立即写入文件 # 等待命令完成 process.wait() # 检查返回码 if process.returncode != 0: raise subprocess.CalledProcessError(process.returncode, command) # 如果命令成功执行,则打印确认信息 print(f"Command executed successfully. Output has been written to {output_file}") except subprocess.CalledProcessError as e: # 如果命令执行失败,则删除文件并打印错误信息 if os.path.exists(output_file): os.remove(output_file) print(f"Command failed with return code {e.returncode}. No log file was created.")