【问题标题】:parsing csv into variables将csv解析成变量
【发布时间】:2012-11-02 00:46:32
【问题描述】:

我对 python 很陌生,正在尝试让一些代码工作。我已经查看了示例,但无法完全根据我的需要进行调整。这是发生了什么。

我有一个 CSV 文件,其中每一行都包含姓名、地址、电子邮件等数据。我需要做的是获取第一行(或最后一行,并不重要)并将每个值解析为它自己的变量,然后删除该行。

就像我说的那样,我查看了示例,但不能完全按照我的需要工作,而且我确信有很多不需要的代码。任何帮助表示赞赏。

【问题讨论】:

    标签: python parsing variables csv


    【解决方案1】:

    这取决于您所说的“删除”是什么意思。我假设你想从文件中删除它?除了将文件中的所有数据读入内存、删除不需要的记录并将数据写回之外,实际上没有任何简单的方法可以做到这一点。仅从文件中删除一条记录的操作相当昂贵。

    就实际读取文件并将每个值存储到它自己的数组中而言,使用 csv 模块可以让您逐行读取文件作为所有逗号分隔值的数组。

    #example of reading in a csv file and operating on each row (python 2.7)
    
    import csv
    import sys
    
    f = open('test.csv', 'r') #open file
    try:
        r = csv.reader(f) #init csv reader
        for row in r:
            #assuming we have the format -  name, address, ph num
            print row[0] #prints name
            print row[1] #prints address
            print row[2] #prints ph num
    finally:
        f.close() #cleanup
    

    【讨论】:

    • 这很有帮助,但我怎样才能删除一行?这可能没有必要,但这是我唯一能想到的。这就是我想要做的事情。我有一个包含这些名称的 csv,但该脚本每天只运行一次,我不希望它重复名称。所以我打算让它抓住列表中的第一个名字,然后删除该行,这样第二天就不会重复了。
    【解决方案2】:

    查看并使用csv module

    如果您需要更改磁盘上的文件,您应该读入您需要的数据,然后用新的所需内容重新写入文件。从文本文件中删除一行并不容易。

    【讨论】:

    • 嗯,就是这样。我一直在看,但我无法得到它。这个文件有很多名字,我真的只需要它来读取第一行或最后一行。我不能让它每次运行时都读取整个文件。当我尝试调整示例时,我就是无法理解。
    • 到目前为止,我有这个,基于一个例子,但似乎有很多不必要的代码。 def readCSV(filename): import csv lines = [] f = open(filename) csvReader = csv.reader( f, delimiter="," ) for row in csvReader:lines.append(row) return lines data = readCSV(" names.csv") GivenName = data[1][0] StreetAddress = data[1][1] City = data[1][2] State = data[1][3] Zip = data[1][4]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2012-10-05
    • 2015-10-13
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    相关资源
    最近更新 更多