import os import subprocess import datetime # 定义命令 command = "/home/star/anaconda3/envs/pfcfuse/bin/python /home/star/whaiDir/PFCFuse/train.py" # 获取当前时间并格式化为文件名 current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_file = f"/home/star/whaiDir/PFCFuse/logs/log_{current_time}.log" try: # 运行命令并将输出重定向到文件 with open(output_file, 'w') as file: process = subprocess.run(command.split(), stdout=file, stderr=subprocess.STDOUT, check=True) # 循环读取输出 for line in process.stdout: # 同时打印到控制台和写入文件 print(line.strip()) file.write(line) file.flush() # 确保立即写入文件 # 如果命令成功执行,则打印确认信息 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.")