我使用以下代码创建文件:
file = open("full_names.txt", "wb")
file.write("Bob Smith\nMichael Jackson\nTony Tiger\nWinston Churchill\nHenry Kissinger\nHamid Karzai\nJohn Major\nJohnny Quest")
file.close()
然后我运行脚本将文件打印到屏幕:
with open("full_names.txt", "rb") as f:
for line in f:
first, last = line.strip().split(" ")
print "Last Name: %r First Name: %r" % (last, first)
但是输出会显示名称周围的引号,如下所示:
Last Name: 'Smith' First Name: 'Bob'
有人知道为什么或如何摆脱它们?
答案 0 :(得分:7)
如果您将%r
替换为%s
,则应将其删除。
%r
显示了对象的表示形式,该对象应该代表一个值,该值可以复制并粘贴到python shell中以重现该对象。 %s
将显示投射到字符串的对象的值。
如文档中所述 https://docs.python.org/2/library/stdtypes.html#string-formatting
和repr
因为这个概念很酷:
https://docs.python.org/2/library/functions.html#func-repr
答案 1 :(得分:2)
只是因为您正在使用%r
。更改为%s
,它将消失=)
print "Last Name: %s First Name: %" % (last, first)
%r
相当于repr(var)
而%s
相当于str(var)