2012-11-13 170 views
-3

我对python非常陌生,并且试图获得一些代码来工作。我看了一些例子,但无法让它们适应我的需求。这是发生了什么。将csv解析为变量

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

就像我说过的,我已经看过一些例子,但无法完全实现它的工作方式,我确信需要很多不必要的代码。任何帮助表示赞赏。

回答

1

看看并使用csv module

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

+0

好吧,就是这样。我一直在看,但我无法得到它。这个文件有很多名字,我真的只需要它来读取第一行或最后一行。每次运行时我都无法读取整个文件。当我尝试修改例子时,我无法得到它。 –

+0

基于一个例子,我有这个到目前为止,但似乎有很多不必要的代码。 DEF readCSV(文件名): 导入CSV 线= [] F =开放(文件名) csvReader = csv.reader(F,分隔符= “”)在csvReader 用于行: lines.append (行) 返回线 数据= readCSV( “names.csv”) 给定名称=数据[1] [0] 的StreetAddress =数据[1] [1] 市=数据[1] [2] State = data [1] [3] Zip = data [1] [4] –

0

这取决于你的意思是'删除'。我假设你想从文件中删除它?除了从文件到内存的所有数据读取之外,没有任何简单的方法可以实现,删除不需要的记录并将数据写回。相当昂贵的操作只是为了从文件中删除一条记录。

就实际读取文件并将每个值存储到自己的数组而言,使用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 
+0

多数民众赞成在帮助,但我怎么能删除一条线?它可能不是必要的,但它是我能想到的唯一的东西。继承人什么我试图做。我有一个csv充满了这些名字,但脚本每天只运行一次,我不希望它重复名称。所以我打算让它抓住名单上​​的第一个名字,然后删除该行,以便第二天不再重复。 –