0

という名前のファイルを取得できます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でラップする方法は?

  1. Python (kvivek) でファイルを作成する方法を理解しています

  2. Python で複雑なシェル コマンドを使用する方法を理解することが私の目標
    です。行数が変数の場合は?

まだ問題があります

  1. @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  
    
  2. @ganachoco の三重引用符の方法

    >>> os.system('''seq  --format="file  '/home/debian/%G.flv'" %d > myFile.txt" %i''')  
    sh: 1: Syntax error: Unterminated quoted string
    

考慮すべきステータスが 2 つあります。ステータス 1: 変数はシェルにあります。実行できます (次の 2 つのシェル コマンドを確認しました)。

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 にあります。シェル コマンドを呼び出して、変数を Python からシェルに入れたいのですが、どうすればよいですか?

>>> 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")
4

3 に答える 3

3

" をバックスラッシュで引用します

for i in (range(1,5)):
    os.system("seq  --format=\"file  '/home/debian/%d.flv'\" > myFile.txt" %i )
于 2013-02-11T10:00:33.547 に答える
3

三重引用符を使用する

os.system("""seq  --format="file  '/home/debian/%G.flv'" 5 > myFile.txt""")
于 2013-02-11T10:00:47.850 に答える