将数据写入csv文件Python

将数据写入csv文件Python,python,python-2.7,csv,export-to-csv,Python,Python 2.7,Csv,Export To Csv,我的数据如下所示 ['[\'Patient, A\', \'G\', \'P\', \'RNA\']'] Patient,A,G,P,RNA 不管括号、引号和反斜杠是什么,我都想用“,”分隔数据,并写入如下的CSV文件 ['[\'Patient, A\', \'G\', \'P\', \'RNA\']'] Patient,A,G,P,RNA 提到分隔符=','没有任何帮助。输出文件如下所示 ['Patient, A','G','P','RNA'] |['Patient, A','G',

我的数据如下所示

['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
Patient,A,G,P,RNA
不管括号、引号和反斜杠是什么,我都想用“,”分隔数据,并写入如下的CSV文件

['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
Patient,A,G,P,RNA
提到分隔符=','没有任何帮助。输出文件如下所示

['Patient, A','G','P','RNA']
|['Patient, A','G','P','RNA']|
都在一个单元中。我想把它们分成多列。我该怎么做

编辑-将它们拆分为不同的单元格,但现在看起来像

['Patient, A','G','P','RNA']
|['Patient, A','G','P','RNA']|
编辑-

转置:

['Patient, A','G','P','RNA']
数据:


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

首先需要将该数据读入Python数组,将字符串作为CSV文件处理在内存中:

from StringIO import StringIO
import csv
data = ['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
clean_data = list(csv.reader( StringIO(data[0]) ))
但是,输出仍然是单个字符串,因为它甚至不是格式良好的CSV!在这种情况下,最好的办法可能是过滤掉所有这些垃圾字符

import re
clean_data = re.sub("[\[\]']","",data[0])

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

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

from StringIO import StringIO
import csv
data = ['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
clean_data = list(csv.reader( StringIO(data[0]) ))
但是,输出仍然是单个字符串,因为它甚至不是格式良好的CSV!在这种情况下,最好的办法可能是过滤掉所有这些垃圾字符

import re
clean_data = re.sub("[\[\]']","",data[0])

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

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

from StringIO import StringIO
import csv
data = ['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
clean_data = list(csv.reader( StringIO(data[0]) ))
但是,输出仍然是单个字符串,因为它甚至不是格式良好的CSV!在这种情况下,最好的办法可能是过滤掉所有这些垃圾字符

import re
clean_data = re.sub("[\[\]']","",data[0])

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

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

from StringIO import StringIO
import csv
data = ['[\'Patient, A\', \'G\', \'P\', \'RNA\']']
clean_data = list(csv.reader( StringIO(data[0]) ))
但是,输出仍然是单个字符串,因为它甚至不是格式良好的CSV!在这种情况下,最好的办法可能是过滤掉所有这些垃圾字符

import re
clean_data = re.sub("[\[\]']","",data[0])

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

Python有一个CSV编写器。开始

import csv
那就试试这样的

with open('new.csv', 'wb') as write_file:
    file_writer = csv.writer(write_file)
    for i in range(data):
        file_writer.writerow([x for x in data[i]])
编辑:

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


Python有一个CSV编写器。开始

import csv
那就试试这样的

with open('new.csv', 'wb') as write_file:
    file_writer = csv.writer(write_file)
    for i in range(data):
        file_writer.writerow([x for x in data[i]])
编辑:

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


Python有一个CSV编写器。开始

import csv
那就试试这样的

with open('new.csv', 'wb') as write_file:
    file_writer = csv.writer(write_file)
    for i in range(data):
        file_writer.writerow([x for x in data[i]])
编辑:

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


Python有一个CSV编写器。开始

import csv
那就试试这样的

with open('new.csv', 'wb') as write_file:
    file_writer = csv.writer(write_file)
    for i in range(data):
        file_writer.writerow([x for x in data[i]])
编辑:

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


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

第一个问题是如何将数据分离为正确的格式,第二个问题是如何将其写入文件

如果这是您的数据格式,那么对于每一行,应该使用类似的方法(将其转换为正确的格式):

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

[["Patient", "A", "G", "P", "RNA"], ...]
然后你可以按照其他答案中的建议将其写入文件

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]
位只是为了删除前导方括号和尾随方括号。

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

"""
                             SAVING DATA INTO CSV FORMAT
    * This format is used for many purposes, mainly for deep learning.
    * This type of file can be used to view data in MS Excel or any similar 
      Application
"""
# == Imports ===================================================================

import csv
import sys

# == Initialisation Function ===================================================

def initialise_csvlog(filename, fields):
    """
    Initilisation this function before using the Inserction function

    * This Function checks the data before adding new one in order to maintain
      perfect mechanisum of insertion
    * It check the file if not exists then it creates a new one
    * if it exists then it proceeds with getting fields

    Parameters
    ----------
    filename : String
        Filename along with directory which need to be created
    Fields : List
        Colomns That need to be initialised

    """
    try :
        with open(filename,'r') as csvfile:
            csvreader = csv.reader(csvfile)
            fields = csvreader.next()
            print("Data Already Exists")
            sys.exit("Please Create a new empty file")
            # print fields  
    except :
        with open(filename,'w') as csvfile:

            csvwriter = csv.writer(csvfile)
            csvwriter.writerow(fields)

# == Data Insertion Function ===================================================

def write_data_csv(filename, row_data):
    """
    This Function save the Row Data into the CSV Created
    * This adds the row data that is Double Listed

    Parameters
    ----------
    filename : String
        Filename along with directory which need to be created
    row_data : List
        Double Listed consisting of row data and column elements in a list  
    """
    with open(filename,'a') as csvfile:

        csvwriter = csv.writer(csvfile)
        csvwriter.writerows(row_data)

if __name__ == '__main__':
    """
    This function is used to test the Feature Run it independently

    NOTE: DATA IN row_data MUST BE IN THE FOLLOWING DOUBLE LISTED AS SHOWN
    """
    filename = "TestCSV.csv"
    fields = ["sno","Name","Work","Department"]
    #Init
    initialise_csvlog(filename,fields)
    #Add Data
    row_data = [["1","Jhon","Coder","Pythonic"]]
    write_data_csv(filename,row_data)

# == END =======================================================================
第一个问题是如何将数据分离为正确的格式,第二个问题是如何将其写入文件

如果这是您的数据格式,那么对于每一行,应该使用类似的方法(将其转换为正确的格式):

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

[["Patient", "A", "G", "P", "RNA"], ...]
然后你可以按照其他答案中的建议将其写入文件

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]
位只是为了删除前导方括号和尾随方括号。

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

"""
                             SAVING DATA INTO CSV FORMAT
    * This format is used for many purposes, mainly for deep learning.
    * This type of file can be used to view data in MS Excel or any similar 
      Application
"""
# == Imports ===================================================================

import csv
import sys

# == Initialisation Function ===================================================

def initialise_csvlog(filename, fields):
    """
    Initilisation this function before using the Inserction function

    * This Function checks the data before adding new one in order to maintain
      perfect mechanisum of insertion
    * It check the file if not exists then it creates a new one
    * if it exists then it proceeds with getting fields

    Parameters
    ----------
    filename : String
        Filename along with directory which need to be created
    Fields : List
        Colomns That need to be initialised

    """
    try :
        with open(filename,'r') as csvfile:
            csvreader = csv.reader(csvfile)
            fields = csvreader.next()
            print("Data Already Exists")
            sys.exit("Please Create a new empty file")
            # print fields  
    except :
        with open(filename,'w') as csvfile:

            csvwriter = csv.writer(csvfile)
            csvwriter.writerow(fields)

# == Data Insertion Function ===================================================

def write_data_csv(filename, row_data):
    """
    This Function save the Row Data into the CSV Created
    * This adds the row data that is Double Listed

    Parameters
    ----------
    filename : String
        Filename along with directory which need to be created
    row_data : List
        Double Listed consisting of row data and column elements in a list  
    """
    with open(filename,'a') as csvfile:

        csvwriter = csv.writer(csvfile)
        csvwriter.writerows(row_data)

if __name__ == '__main__':
    """
    This function is used to test the Feature Run it independently

    NOTE: DATA IN row_data MUST BE IN THE FOLLOWING DOUBLE LISTED AS SHOWN
    """
    filename = "TestCSV.csv"
    fields = ["sno","Name","Work","Department"]
    #Init
    initialise_csvlog(filename,fields)
    #Add Data
    row_data = [["1","Jhon","Coder","Pythonic"]]
    write_data_csv(filename,row_data)

# == END =======================================================================
第一个问题是如何将数据分离为正确的格式,第二个问题是如何将其写入文件

如果这是您的数据格式,那么对于每一行,应该使用类似的方法(将其转换为正确的格式):

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

[["Patient", "A", "G", "P", "RNA"], ...]
然后你可以按照其他答案中的建议将其写入文件

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]
位仅用于删除前导方括号和尾随方括号。

如果您正在尝试
"""
                             SAVING DATA INTO CSV FORMAT
    * This format is used for many purposes, mainly for deep learning.
    * This type of file can be used to view data in MS Excel or any similar 
      Application
"""
# == Imports ===================================================================

import csv
import sys

# == Initialisation Function ===================================================

def initialise_csvlog(filename, fields):
    """
    Initilisation this function before using the Inserction function

    * This Function checks the data before adding new one in order to maintain
      perfect mechanisum of insertion
    * It check the file if not exists then it creates a new one
    * if it exists then it proceeds with getting fields

    Parameters
    ----------
    filename : String
        Filename along with directory which need to be created
    Fields : List
        Colomns That need to be initialised

    """
    try :
        with open(filename,'r') as csvfile:
            csvreader = csv.reader(csvfile)
            fields = csvreader.next()
            print("Data Already Exists")
            sys.exit("Please Create a new empty file")
            # print fields  
    except :
        with open(filename,'w') as csvfile:

            csvwriter = csv.writer(csvfile)
            csvwriter.writerow(fields)

# == Data Insertion Function ===================================================

def write_data_csv(filename, row_data):
    """
    This Function save the Row Data into the CSV Created
    * This adds the row data that is Double Listed

    Parameters
    ----------
    filename : String
        Filename along with directory which need to be created
    row_data : List
        Double Listed consisting of row data and column elements in a list  
    """
    with open(filename,'a') as csvfile:

        csvwriter = csv.writer(csvfile)
        csvwriter.writerows(row_data)

if __name__ == '__main__':
    """
    This function is used to test the Feature Run it independently

    NOTE: DATA IN row_data MUST BE IN THE FOLLOWING DOUBLE LISTED AS SHOWN
    """
    filename = "TestCSV.csv"
    fields = ["sno","Name","Work","Department"]
    #Init
    initialise_csvlog(filename,fields)
    #Add Data
    row_data = [["1","Jhon","Coder","Pythonic"]]
    write_data_csv(filename,row_data)

# == END =======================================================================