3

私はPythonを使用してOSと通信しています。

次の形式の文字列を作成する必要があります。

string = "done('1') && done('2')"

私の文字列には二重引用符が含まれている必要がありますが、Pythonでは文字列を定義するために二重引用符が使用されているため、その方法がわかりません。

それから私は次のようなことをします:

os.system(string)

ただし、システムは二重引用符と一重引用符を含む文字列のみを読み取ります。

私は試した:

>>> s = '"done('1') && done('2')"'
  File "<stdin>", line 1
    s = '"done('1') && done('2')"'
                ^
SyntaxError: invalid syntax

ここで提案されている三重引用符も試しましたが、エラーが発生します。

>>> s = """"done('1') && done('2')""""
  File "<stdin>", line 1
    s = """"done('1') && done('2')""""
                                     ^
SyntaxError: EOL while scanning string literal

一重引用符(')と二重引用符( ")の両方を含む文字列をPythonで保存する方法

4

4 に答える 4

5

三重引用符で囲まれた文字列を使用する場合、Pythonが3つの引用符の最後のセットを見つけたときに文字列が終了することを覚えておく必要があります。これについては、貪欲ではありません。だからあなたはできる:

三重一重引用符で囲むように変更します。

my_command = '''"done('1') && done('2')"'''

終了引用符をエスケープします。

my_command = """"done('1') && done('2')\""""

または、引用符の周りにスペースを追加stripして、結果の文字列を呼び出します。

my_command = """
"done('1') && done('2')"
""".strip()
# Blank lines are for illustrative purposes only
# You can do it all on one line as well (but then it looks like you have
# 4 quotes (which can be confusing)
于 2013-03-24T18:12:05.150 に答える
3

両方の種類の引用符をエスケープできます。

s = '"done(\'1\') && done(\'2\')"'
于 2013-03-24T18:12:40.097 に答える
2

引用符の4つのフレーバーすべて:

print('''"done('1') && done('2')"''')  # No escaping required here.
print(""""done('1') && done('2')\"""")
print("\"done('1') && done('2')\"")
print('"done(\'1\') && done(\'2\')"')

出力:

"done('1') && done('2')"
"done('1') && done('2')"
"done('1') && done('2')"
"done('1') && done('2')"
于 2013-03-24T18:24:46.420 に答える
0

これはあなたが期待していることだと思います:string = "\" done( '1')&& done( '2')\" "

これがあなたの質問に答えない場合は無視してください。

于 2013-03-24T18:27:43.023 に答える