![用 Python 编写的源 shell 脚本](https://linux22.com/image/1188371/%E7%94%A8%20Python%20%E7%BC%96%E5%86%99%E7%9A%84%E6%BA%90%20shell%20%E8%84%9A%E6%9C%AC.png)
我有一个 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')
我想做的事
- 我想使用(通过获取)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')