簡體   English   中英

python string'“':字符串內的單雙引號

[英]python string ' " ' : single double quote inside string

雙引號看起來像這樣。“如果我把它放在python字符串中,我得到這個' " ' 在python中,我可以在字符串' "" '放置兩個雙引號,並將其打印為兩個雙引號。 但是,我不能像以前一樣在字符串中加一個雙引號' " ' 。我正在使用pydev在eclipse中執行此操作,它給出了一個error: "encountered "\\r" (13), after : ""后面error: "encountered "\\r" (13), after : "" 我正在嘗試使用命令管道和文件名執行以下操作:

logA = 'thing.txt'
cmdpipe = os.popen('copy "C:\upe\' + logA + '"' + ' "C:\upe\log.txt"') 

您需要轉義反斜杠:

logA = 'thing.txt'
cmdpipe = os.popen('copy "C:\\upe\\' + logA + '"' + ' "C:\\upe\\log.txt"') 

通常,當字符串文字中有反斜杠時,將使用原始字符串( r'...' )。 但是,正如@BrenBarn所指出的,在這種情況下,此方法將無效。

您需要轉義反斜杠,否則它將做奇怪的事情。

logA = 'thing.txt'
cmdpipe = os.popen(
    'copy "C:\\upe\\' + logA + '"' + ' "C:\\upe\\log.txt"')

編輯:更pythonic的方式將是這樣:

logA = 'thing.txt'
cmdpipe = os.popen('copy "C:\\upe\\{}" "C:\\upe\\log.txt"'.format(logA))

upe杠后的反斜杠轉義了第一個單引號的結束:

'copy "C:\upe\' + logA + '"' + ' "C:\upe\log.txt"'
--------------^ add an escape at least here, and it will work!

另一種選擇是按更多步驟編寫命令:

basepath = r'C:\upe'
inpath = os.path.join(basepath, logA)
outpath = os.path.join(basepath, 'log.txt')
logA = 'thing.txt'
command = 'copy "%s" "%s"' % (inpath, outpath)

print command

cmdpipe = os.popen(command)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM