#python #file
#python #файл
Вопрос:
У меня есть двумерный массив, подобный этому:
[["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 имеет double quotation
[["x",0xacc2d9],
["y",0x56ae57]]
Комментарии:
1. Вы не выводите данные CSV; не используйте
csv.writer
.2. @chepner спасибо за ответ. но я пробовал разные способы, но не смог получить желаемый результат. не могли бы вы, пожалуйста, поделиться со мной своей идеей, как я могу это решить?
Ответ №1:
Не идеально, но это дает вам возможность поиграть:
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]
]
Как вы планируете использовать этот файл?
И для немного более чистой обработки скобок out (и замены кавычек):
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]]
Комментарии:
1. Большое вам спасибо @hpaulj . извините за неясность, по какой-то причине я хочу, чтобы в результате были только двойные кавычки. итак, x будет «x», а не «x», не могли бы вы, пожалуйста, дать мне знать, если у вас есть какие-либо идеи по исправлению этого?
2. Это для конкретного использования в другой области, вот почему я должен подготовить правильное форматирование. У вас есть какие-либо идеи, как мы можем получить первый элемент с двойными кавычками?
3. Я добавил альтернативу с заменой кавычек. Также может существовать способ управления выбором кавычек в любом из
%
механизмов.format
форматирования. Для этого нам пришлось бы покопаться. Python использует две версии взаимозаменяемо.4. Большое вам спасибо. Я использовал replace для замены «на», но это не сработало !!. еще раз большое спасибо. вы очень помогли 🙂