双引号看起来像这样“。如果我把它放在一个python字符串中,我得到这个' " '
。在python中,我可以在字符串' "" '
中放两个双引号,并将其打印为两个双引号。但是,我不能像以前一样在字符串中放一个双引号,' " '
。我在eclipse中用pydev做这个,它给了error: "encountered "\r" (13), after : ""
。我正在尝试做跟随命令管道和文件名:
logA = 'thing.txt'
cmdpipe = os.popen('copy "C:\upe\' + logA + '"' + ' "C:\upe\log.txt"')
答案 0 :(得分:3)
你需要逃避反斜杠:
logA = 'thing.txt'
cmdpipe = os.popen('copy "C:\\upe\\' + logA + '"' + ' "C:\\upe\\log.txt"')
通常,当字符串文字中有反斜杠时,会使用原始字符串(r'...'
)。但是,正如@BrenBarn所指出的那样,在这种情况下这不起作用。
答案 1 :(得分:2)
你需要逃避反斜杠,否则会做出奇怪的事情。
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))
答案 2 :(得分:0)
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)