在字符串中如何表示一个不带引号的字符串?

5

我想将文本写入文件,但是除了目标字符串之外,我还需要包含其他文本。当我循环遍历目标字符串时,由于其他文本需要引号,所以它们被打印为带引号的字符串。 如何从我在每个循环中插入的字符串中删除引号?

list=['random', 'stuff', 1]
with open(textfile, 'a') as txtfile:
    for item in list:
        print("""Need to have stuff before %a and after each loop string"""  
        %item, file=txtfile)

输出: 需要在每个循环字符串之前和'random'之后有一些内容。
期望输出: 在每个循环字符串之前和random之后需要有一些内容。


4
将 %a 替换为 %s。 - MegaIng
运行得非常好。我没有为更多选项改变我的代码的任何部分。非常感谢您快速而精确的回答。 - Justlest
2个回答

3

您可以使用str.format

>>> li=['random', 'stuff', 1]
>>> for item in li:
...    print("before {} after".format(item))
... 
before random after
before stuff after
before 1 after

或者您可以使用 % 运算符与 %s
>>> for item in li:
...    print("before %s after" % item)
... 
before random after
before stuff after
before 1 after

(不要把列表命名为list,否则会覆盖Python中同名的函数...)

谢谢。如果在列表命名上添加指针,将获得额外的Karma积分。 - Justlest

1

除了需要输入字符串(即%s是一个字符串),你需要使用%s而不是%a,你的代码是正确的。

megaing在评论中指出的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接