Python3 我该如何执行这个复杂的 shell 命令
Python3 How should I execute this complex shell command
我想通过 python 执行此 shell 命令,我尝试使用
shell="ls *R1.fastq.gz|while read a; do b=${a%R1.fastq.gz}R2.fastq.gz; c=${a%R1.fastq.gz}R1.out.fq; d=${a%R1.fastq.gz}R2.out.fq; e=${a%R1.fastq.gz}.s.fq; echo "sickle pe -t sanger -f $a -r $b -o $c -p $d -s $e"; done >SICKLE.sh"
system.os(shell)
但是得到 SythaxError: InvalidSyntax
我做了一些研究,也许我应该使用 subprocces
?但我对此很陌生,我们可以帮助我吗?
escape
引号(在字符串中的引号前添加 \
)
shell="*R1.fastq.gz|while read a; do b=${a%R1.fastq.gz}R2.fastq.gz; c=${a%R1.fastq.gz}R1.out.fq; d=${a%R1.fastq.gz}R2.out.fq; e=${a%R1.fastq.gz}.s.fq; echo \"sickle pe -t sanger -f $a -r $b -o $c -p $d -s $e\"; done >SICKLE.sh"
subprocess.call
:
import subprocess
subprocess.call(["ls", shell])
我想通过 python 执行此 shell 命令,我尝试使用
shell="ls *R1.fastq.gz|while read a; do b=${a%R1.fastq.gz}R2.fastq.gz; c=${a%R1.fastq.gz}R1.out.fq; d=${a%R1.fastq.gz}R2.out.fq; e=${a%R1.fastq.gz}.s.fq; echo "sickle pe -t sanger -f $a -r $b -o $c -p $d -s $e"; done >SICKLE.sh"
system.os(shell)
但是得到 SythaxError: InvalidSyntax
我做了一些研究,也许我应该使用 subprocces
?但我对此很陌生,我们可以帮助我吗?
escape
引号(在字符串中的引号前添加 \
)
shell="*R1.fastq.gz|while read a; do b=${a%R1.fastq.gz}R2.fastq.gz; c=${a%R1.fastq.gz}R1.out.fq; d=${a%R1.fastq.gz}R2.out.fq; e=${a%R1.fastq.gz}.s.fq; echo \"sickle pe -t sanger -f $a -r $b -o $c -p $d -s $e\"; done >SICKLE.sh"
subprocess.call
:
import subprocess
subprocess.call(["ls", shell])