python string'':字符串中的单双引号

2024-06-30 16:41:15 发布

您现在位置:Python中文网/ 问答频道 /正文

双引号是这样的。如果我把它放在python字符串中,就会得到这个' " '。在python中,我可以将两个双引号放在字符串' "" '中,然后将其打印为两个双引号。但是,我不能像以前那样在字符串中放一个双引号,' " '。我在eclipse中用pydev做这个,它给出了一个error: "encountered "\r" (13), after : ""。我正在尝试对命令管道和文件名执行以下操作:

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

Tags: 字符串命令txt管道文件名errorthingeclipse
3条回答

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)

你需要避开反斜杠,否则它会做一些奇怪的事情。

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

编辑:一个更像Python的方法是这样的:

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

你需要避开反斜杠:

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

通常,当字符串文本中有反斜杠时,会使用原始字符串(r'...')。然而,正如@BrenBarn所指出的,这在这种情况下是行不通的。

相关问题 更多 >