2012-01-29 42 views
41

嗯......当我想在python中执行“print”命令并且需要使用引号时,我不知道如何在不关闭句子的情况下如何操作。例如:Python - 在引号内使用引号

打印“”

但是,当我尝试做什么我做上面,我最终关闭这句话,我不能把‘需要引号的字’我需要引号之间的单词。

我该怎么做?

回答

129

您可以通过三种方式来实现:

1)使用单引号和双引号一起:

>>> print '"A word that needs quotation marks"' 
"A word that needs quotation marks" 

2)转义字符串中的双引号:

>>> print "\"A word that needs quotation marks\"" 
"A word that needs quotation marks" 

3)使用三重引号的字符串:

>>> print """ "A word that needs quotation marks" """ 
"A word that needs quotation marks" 
+1

最佳答案,就在这里。 – Droogans 2012-01-29 02:21:12

+4

转义双引号的作品,但你已经放入的额外空间现在是字符串的一部分,通过摆脱空格很容易修复。 与三引号字符串类似 - 多余的空格成为字符串的一部分,我不知道如何解决这个问题,因为将内置“三合一”引起SyntaxError – 2012-01-29 02:21:35

+0

@JamesPolley你说得对案例#3。我已经修复了案例#2。 – 2012-01-29 02:24:10

3

Python的同时接受“和”为引号,所以你可以这样做的:

>>> print '"A word that needs quotation marks"' 
"A word that needs quotation marks" 

另外,刚刚逃脱内“S

>>> print "\"A word that needs quotation marks\"" 
"A word that needs quotation marks" 
6

你需要转义:

>>> print "The boy said \"Hello!\" to the girl" 
The boy said "Hello!" to the girl 
>>> print 'Her name\'s Jenny.' 
Her name's Jenny. 

请参阅python页面string literals

2

使用文字转义字符\

print("Here is, \"a quote\"") 

人物基本上意味着无视我的下一个字符内的语义上下文,并在其字面意义处理。

在Python 3.2.2
1

在Windows上,

print(""""A word that needs quotation marks" """) 

是确定的。我认为这是Python解释器的增强。

0

您也可以尝试串另外: 这是一式两份普遍print " "+'"'+'a word that needs quotation marks'+'"'

1

一种情况是使用外部流程的报价要求。解决这个问题的方法是不使用shell,这可以消除一个级别引用的需求。

os.system("""awk '/foo/ { print "bar" }' %""" % filename) 

可以有效地和

subprocess.call(['awk', '/foo/ { print "bar" }', filename]) 

(这也解决了壳牌在filename元字符将需要由壳体,其原代码没有做到逃脱的bug更换;但如果没有外壳,没有必要)。

当然,在绝大多数情况下,您根本不需要或不需要外部进程。

with open(filename) as fh: 
    for line in fh: 
     if 'foo' in line: 
      print("bar")