Python 如何去掉数组中的内置引号并保存到文件中
我有这样一个二维数组:Python 如何去掉数组中的内置引号并保存到文件中,python,file,Python,File,我有这样一个二维数组: [["x","0xacc2d9"], ["y","0x56ae57"]] 我想保存这个数组,使它保持二维数组。 第一项有报价,第二项没有报价 因此,保存在文件中的结果应为: [["x",0xacc2d9], ["y",0x56ae57]] 我尝试了各种方法,但由于报价不是额外的,而且是构建的,我无法删除它。 我试过了 lst. replace(""",") 还有,这个: filename= 'test.txt' with open(filename,
[["x","0xacc2d9"],
["y","0x56ae57"]]
我想保存这个数组,使它保持二维数组。
第一项有报价,第二项没有报价
因此,保存在文件中的结果应为:
[["x",0xacc2d9],
["y",0x56ae57]]
我尝试了各种方法,但由于报价不是额外的,而且是构建的,我无法删除它。
我试过了
lst. replace(""",")
还有,这个:
filename= 'test.txt'
with open(filename, 'w') as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(lst)
但是它删除了[]、“”,我不想删除它们
谢谢你的帮助
Edit2
出于某种原因,我需要我的输出具有双引号,而不是单引号,因此输出必须是:哪个x具有双引号
[["x",0xacc2d9],
["y",0x56ae57]]
虽然不完美,但它给了你一些可以玩的东西:
In [883]: lst = [["x","0xacc2d9"],
...: ["y","0x56ae57"]]
In [885]: with open('test.txt','w') as f:
...: f.write('[')
...: for row in lst:
...: f.write('[%r, %s]\n'%tuple(row))
...: f.write(']\n')
...:
In [886]: cat test.txt
[['x', 0xacc2d9]
['y', 0x56ae57]
]
您打算如何使用此文件
为了更干净地处理外支架(和报价更换):
您没有输出CSV数据;不要使用
csv.writer
@chepner感谢您的回答。但我已经尝试了各种方法,但我无法得到我想要的输出。你能告诉我你的想法吗?我如何解决它?非常感谢@hpaulj。对不起,不清楚,出于某种原因,我只想在结果中引用双引号。所以x将是“x”而不是“x”,你能告诉我你是否有任何想法来修复它吗?它是为了在另一个领域的特定用途,这就是为什么我必须准备正确的格式。你知道我们如何才能得到第一个项目的双报价吗?我添加了一个替代报价替换。也可以通过%
的.format
格式化机制控制引号的选择。我们得到处找。Python交替使用这两个版本。非常感谢。我确实使用了“替换”来替换“to”,但它不起作用!!。再次非常感谢。你帮了我很多忙:)
In [887]: astr = '\n'.join(['[%r, %s]'%tuple(row) for row in lst])
In [888]: astr
Out[888]: "['x', 0xacc2d9]\n['y', 0x56ae57]"
In [895]: astr = astr.replace("'",'"')
In [896]: astr
Out[896]: '["x", 0xacc2d9]\n["y", 0x56ae57]'
In [897]: with open('test.txt','w') as f:
...: print('[%s]'%astr, file=f)
...:
In [898]: cat test.txt
[["x", 0xacc2d9]
["y", 0x56ae57]]