|
@@ -1,6 +1,7 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
import os
|
|
|
import shutil
|
|
|
+import subprocess
|
|
|
import time
|
|
|
import oss2
|
|
|
|
|
@@ -45,12 +46,41 @@ def parse_csv(data_bag, parse_prefix, local_parse_dir, local_delete_list):
|
|
|
oss_csv_object_key4 = parse_prefix + csv_file_name4 + '.csv'
|
|
|
bucket.put_object_from_file(oss_csv_object_key4, local_csv_file_path4)
|
|
|
|
|
|
- # 生成并上传csv之后,调用
|
|
|
- os.chdir(path2)
|
|
|
- command1 = './pji_outdoor_real ' + str(local_csv_dir) + '/ ' + str(local_csv_dir) + '/ ' + str(
|
|
|
- local_csv_dir) + '/trajectory.png ' + bagname
|
|
|
- logging.info("调用生成pdf 报告命令: %s" % str(command1))
|
|
|
- os.system(command1)
|
|
|
+ # 生成pdf
|
|
|
+ try:
|
|
|
+ os.chdir(path2)
|
|
|
+ # 构造命令
|
|
|
+ command1 = ['./pji_outdoor_real',
|
|
|
+ os.path.join(local_csv_dir, ''), # 注意:这里可能不需要末尾的 '/',取决于程序要求
|
|
|
+ os.path.join(local_csv_dir, ''), # 同上
|
|
|
+ os.path.join(local_csv_dir, 'trajectory.png'),
|
|
|
+ bagname]
|
|
|
+
|
|
|
+ # 记录调用命令的信息
|
|
|
+ logging.info("调用生成pdf 报告命令: %s" % ' '.join(command1))
|
|
|
+
|
|
|
+ # 使用 subprocess.Popen 执行命令
|
|
|
+ process = subprocess.Popen(command1, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
|
+ stdout, stderr = process.communicate() # 等待命令执行完成
|
|
|
+
|
|
|
+ # 检查是否有输出或错误
|
|
|
+ if stdout:
|
|
|
+ logging.info("命令的标准输出:")
|
|
|
+ logging.info(stdout.decode('utf-8')) # Python 2 中需要解码
|
|
|
+ if stderr:
|
|
|
+ logging.error("命令的错误输出:")
|
|
|
+ logging.error(stderr.decode('utf-8')) # Python 2 中需要解码
|
|
|
+
|
|
|
+ # 检查命令是否成功执行
|
|
|
+ if process.returncode == 0:
|
|
|
+ logging.info("命令执行成功")
|
|
|
+ else:
|
|
|
+ logging.error("命令执行失败,退出码: %s" % process.returncode)
|
|
|
+
|
|
|
+ except OSError as e:
|
|
|
+ # 如果更改目录失败或命令不存在等
|
|
|
+ logging.error("在执行过程中发生错误: %s" % e)
|
|
|
+
|
|
|
oss_csv_object_key5 = parse_prefix + 'report.pdf'
|
|
|
bucket.put_object_from_file(oss_csv_object_key5, str(local_csv_dir) + '/report.pdf')
|
|
|
logging.info("pdf 报告生成并上传完成。")
|
|
@@ -141,4 +171,4 @@ if __name__ == '__main__':
|
|
|
logging.exception("捕获到一个异常: %s" % str(e))
|
|
|
except Exception as e:
|
|
|
logging.exception("全局错误处理: %s" % str(e))
|
|
|
- time.sleep(sleep_time)
|
|
|
+ time.sleep(sleep_time)
|