它可以得到一个名为 的文件myFile.txt
,其中内容为:
file '/home/debian/1.flv'
file '/home/debian/2.flv'
file '/home/debian/3.flv'
file '/home/debian/4.flv'
file '/home/debian/5.flv'
现在我想用 Python 包装它
os.system("seq --format="file '/home/debian/%G.flv'" 5 > myFile.txt" )
File "<stdin>", line 1
os.system("seq --format="file '/home/debian/%G.flv'" 5 > myFile.txt" )
^
SyntaxError: invalid syntax
如何用 Python 包装它?
我确实了解如何在 Python (kvivek) 中创建文件
我的目标是了解如何在 Python 中使用复杂的 shell 命令,
如果行数是一个变量?
还是有问题
@Torxed 转义字符方式
>>> i=7 >>> os.system("seq --format=\"file '/home/debian/%G.flv'\" %d > myFile.txt" %i ) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: float argument required, not str
@ganachoco 的三重引号方式
>>> os.system('''seq --format="file '/home/debian/%G.flv'" %d > myFile.txt" %i''') sh: 1: Syntax error: Unterminated quoted string
有两个状态需要考虑,状态1:变量在shell中,我们可以做(我已经验证了以下两个shell命令)
root@debian:/home/debian# i=7
root@debian:/home/debian# seq --format="file '/home/debian/%G.flv'" $i > myFile.txt
如何使用 os.system 将其包装在 Python 中?
>>> os.system('i=7')
0
>>> os.system("seq --format=\"file '/home/debian/%G.flv'\" $i > myFile.txt")
seq: missing operand
Try `seq --help' for more information.
256
变量在Python中,现在我想调用shell命令把Python中的变量放到shell中,怎么办?
>>> i=7 #in python prompt
>>> os.system("seq --format=\"file '/home/debian/%G.flv'\" `here i want to get value from python prompt` > myFile.txt")