我想用一个列表中的双引号替换单引号
因此,我正在制作一个程序,它接受一个文本文件,将其分解成单词,然后将列表写入新的文本文件。我想用一个列表中的双引号替换单引号
我遇到的问题是我需要列表中的字符串与双引号不单引号。
例如
我得到这个['dog','cat','fish']
时,我想这个["dog","cat","fish"]
这里是我的代码
with open('input.txt') as f:
file = f.readlines()
nonewline = []
for x in file:
nonewline.append(x[:-1])
words = []
for x in nonewline:
words = words + x.split()
textfile = open('output.txt','w')
textfile.write(str(words))
我是新来的蟒蛇并没有发现这事。 任何人都知道如何解决这个问题?
[编辑:我忘了提,我用在需要的列表,以便在双引号一个Arduino项目输出]
你不能改变如何str
作品list
。
如何使用JSON format使用"
作为字符串。
>>> animals = ['dog','cat','fish']
>>> print(str(animals))
['dog', 'cat', 'fish']
>>> import json
>>> print(json.dumps(animals))
["dog", "cat", "fish"]
import json
...
textfile.write(json.dumps(words))
如果你想双引号添加到开始和串并做到这一点:
words = ['"'+word+'"' for word in words]
你的名单将是这样的:
['"dog"', '"cat"', '"fish"']
不是OP的问题 –
在Python中,双引号和单引号是相同的。他们之间没有什么不同。并且没有必要用双引号替换单引号,反之亦然:
2.4.1。字符串和字节文字
...简单英语:两种文字类型都可以用单引号(')或双引号(“)括起来,也可以用三个单引号或双引号(这些通常被称为三重引号字符串)反斜杠()字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引号字符...
“我遇到的问题是我需要列表中的字符串与双引号不是单引号。” - 那么你需要让你的程序接受单引号,而不是用双引号替换单引号。
最有可能你会想仅仅通过更换他们更换单引号与您的输出双引号:
str(words).replace("'", '"')
您可以还扩展Python的str
类型和新的类型改变包装你的字符串__repr__()
方法使用双引号而不是单引号。不过,使用上面的代码更简单,更明确。
class str2(str):
def __repr__(self):
# Allow str.__repr__() to do the hard work, then
# remove the outer two characters, single quotes,
# and replace them with double quotes.
return ''.join(('"', super().__repr__()[1:-1], '"'))
>>> "apple"
'apple'
>>> class str2(str):
... def __repr__(self):
... return ''.join(('"', super().__repr__()[1:-1], '"'))
...
>>> str2("apple")
"apple"
>>> str2('apple')
"apple"
['狗','猫','鱼']与[狗,猫,鱼]是相同的,引号只是为了将琴弦弄湿。引号不是字符串的一部分。尝试打印(字[0]),你会明白 –
“我遇到的问题是我需要在列表中的字符串与双引号不单引号。” - 为什么?你打算如何处理这个需要双引号的文件?你想输出JSON还是什么? (如果是这样,那么有一个[模块](https://docs.python.org/3/library/json.html)。) – user2357112
请显示输入文件。 – merlin2011