1
source = "C:\Program Files (x86)\xxx\yyy\Agent\node.default\blr-w2k8-252\data\somefile.iso"
print source

出力:

"C:\Program Files (x86)\xxx\yyy\Agent
 ode.defaulblr-w2k8-252\data\somefile.iso"

\node の場合、新しい行が追加され、deaful t\blr がなくなっていることに注意してください。

私はやっsource=source.replace('\\', '/') たが、同じ出力を得て/nも改行が発生している。

私はsource=source.encode('string-escape')今、出力は別のものです

出力:

"C:\\Program Files (x86)\\xxx\\yyy\\Agent\node.default\x08lr-w2k8-252\\data\\somefile.iso"

生の文字列のみが機能しています

source=r"C:\Program Files (x86)\xxx\yyy\Agent\node.default\blr-w2k8-252\data\somefile.iso"

しかし、私のプログラムには文字列変数しかありません。それを機能させる方法、または文字列変数を raw にする方法は?

4

2 に答える 2

1

エスケープ シーケンスについて読んでください。文字列の前に 'r' を使用すると、エスケープ シーケンスを無視して文字列をそのまま受け取るように Python に指示します。ソースを値にハードコーディングすると、ソースの値が関数の呼び出しから割り当てられる場合とは異なります。機能しない場合は、呼び出している関数がそのパスを作成する方法を確認してください。

于 2013-02-21T07:43:59.360 に答える
1

文字列リテラルの前に "r" を指定しても、文字列のデータ型は変更されません。文字列リテラルの解釈方法に影響するだけです。したがって、問題は、情報が収集された後の文字列の保存方法ではなく、情報が文字列に収集される方法である可能性があります。Python で文字列を出力すると、出力に自動的にエスケープ文字が含まれることにも注意してください (「output:」の例の二重スラッシュなど)。両方が表示されていても、文字列には 1 つのスラッシュしか含まれていません。

于 2013-02-21T06:21:28.743 に答える