用 Python 编写的源 shell 脚本

用 Python 编写的源 shell 脚本

我有一个 shell 脚本文件和一个 python 脚本文件

shell脚本文件(STEP0.sh)包含以下内容:

#!/bin/bash

DIR="/sc/arion/projects/Variants/annotations/gnomAD"
IN="/sc/arion/projects/Variants/gnomad.exomes.r2.1.1.sites.liftover_grch38.vcf.gz

python 脚本文件(STEP11.py)包含以下内容:

import pandas as pd
import sys
from functools import reduce

f1 = pd.read_csv('$DIR/STEP5_out/vep5.csv')
f2 = pd.read_csv('$DIR/STEP6_out/vep6.csv')
f3 = pd.read_csv('$DIR/STEP7_out/vep7.csv')

我想做的事

  1. 我想使用(通过获取)python 脚本中的 shell 脚本目录作为 csv 文件的目录。其中 $DIR 表示 shell 脚本中的变量。

答案1

你应该这么做你调用python。使用包装器脚本(launch_steps.sh):

#!/bin/bash
# automatically export variables
set -a
. ./STEP0.sh
exec python ./STEP11.py

然后在python中:

  • 添加import os
  • 抓住变量:dir = os.environ["DIR"]
  • 和:f1 = pd.read_csv(dir + '/STEP5_out/vep5.csv')

相关内容