如何在Linux环境下通过Python从batch_file.txt提取内容生成指定变量?
读取批处理文件并提取字段的实现方案
文件结构说明
- 批处理文件:
batch_file.txt - 脚本位置:
code_base/workflow_1/session_1.py - 批处理文件每行格式:
batch_id#workflow_id#workflow_name#session_id#session_name#run_date#flow_name#flow_id
实现步骤与代码
首先注意文件路径问题:脚本在code_base/workflow_1/目录下,若batch_file.txt在项目根目录,需使用相对路径../../batch_file.txt;如果和脚本同目录,直接用batch_file.txt即可。
以下是完整处理代码:
# 调整file_path为实际文件路径 file_path = '../../batch_file.txt' # 使用with语句安全打开文件,自动处理关闭 with open(file_path, 'r') as batch_file: # 逐行读取文件内容 for line in batch_file: # 去除行首尾的空白、换行符,避免分割出无效空字段 cleaned_line = line.strip() # 跳过空行 if not cleaned_line: continue # 按#分割每行内容为字段列表 fields = cleaned_line.split('#') # 按顺序提取字段并赋值,数字类型转为int batch_id = int(fields[0]) workflow_id = int(fields[1]) workflow_name = fields[2] session_id = int(fields[3]) session_name = fields[4] run_date = fields[5] flow_name = fields[6] flow_id = int(fields[7]) # 这里添加你的业务逻辑,比如打印验证、存入数据结构等 print(f"批次ID: {batch_id}, 工作流: {workflow_name}, 会话: {session_name}")
额外优化(可选)
如果只需要处理特定会话(比如session_1),可以在赋值后添加判断逻辑:
if session_name == 'session_1': # 执行针对session_1的处理 print(f"处理目标会话: {session_name},运行日期: {run_date}")
内容的提问来源于stack exchange,提问作者nmr
相关产品推荐
相关产品推荐

