将数据写入csv文件Python

2024-05-19 20:54:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据如下所示

['[\'Patient, A\', \'G\', \'P\', \'RNA\']']

不考虑括号、引号和反斜杠,我想用''分隔数据,并写入如下CSV文件

^{pr2}$

提到delimiter=','没有任何帮助。输出文件看起来像

['Patient, A','G','P','RNA']

都在一个牢房里。我想把它们分成多个列。我怎么能做到呢?在

编辑-提及quotechar='|'将它们分成不同的单元格,但现在看起来

|['Patient, A','G','P','RNA']|

编辑-

out_file_handle = csv.writer(out_file, quotechar='|', lineterminator='\n', delimiter = ",")
data = ''.join(mydict.get(word.lower(), word) for word in re.split('(\W+)', transposed))
data = [data,]
out_file_handle.writerow(data)

换位:

['Patient, A','G','P','RNA']

数据:

['[\'Patient, A\', \'G\', \'P\', \'RNA\']']

它有多行,上面是整个数据中的一行。在


Tags: 文件数据编辑dataout引号rnaword
3条回答

首先需要将此数据读入Python数组,方法是将字符串作为CSV文件在内存中进行处理:

from StringIO import StringIO
import csv
data = ['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
clean_data = list(csv.reader( StringIO(data[0]) ))

但是输出仍然是一个字符串,因为它甚至不是一个格式良好的CSV!在这种情况下,最好的办法就是过滤掉所有的垃圾字符?在

^{pr2}$

现在数据[0]是'Patient, A, G, P, RNA',这是一个干净的CSV,可以直接写入文件。在

Python有一个CSV编写器。从开始

import csv

那就试试这样吧

^{pr2}$

编辑:

在编写数据之前,您可能需要先对数据进行一点整理,因为它看起来像是一个字符串,而不是一个列表。尝试使用split()函数

list = data.split()

如果您试图以['[\'Patient, A\', \'G\', \'P\', \'RNA\']']的形式将数据写入文件,其中有一个字符串数组,那么这实际上是一个分为两部分的问题。在

第一个问题是如何将数据分隔成正确的格式,然后是将其写入文件。在

如果这是数据的格式,对于每一行,那么类似这样的方法应该有效(使其成为正确的格式):

data = ['[\'Patient, A\', \'G\', \'P\', \'RNA\']', ...]
newData = [entry.replace("\'", "")[1:-1].split(",") for entry in data]

这将为您提供以下形式的数据:

^{pr2}$

然后你可以按照其他答案的建议把它写到文件里

with open('new.csv', 'wb') as write_file:
  file_writer = csv.writer(write_file)
  for dataEntry in range(newData ):
    file_writer.writerow(dataEntry)

如果您实际上不关心在这一轮中使用数据,而只想清理它,那么您可以只执行data.replace("\'", "")[1:-1]操作,然后将这些字符串写入文件。在

[1:-1]位只是删除前导方括号和尾随方括号。在

相关问题 更多 >