在Python中只读取csv文件的更新部分

时间:2016-05-31 14:02:28

标签: python json csv

我有一个csv文件,我每隔10秒追加一次新结果。每次(从用户指定)我都读了这个csv并制作了一个JSON文件。我不希望每次都将整个csv转换为JSON,而只是将最后一部分转换为JSON。所以,我想我每次都会保留最后一行,然后我将从这一行开始读取该文件,然后将其转换为JSON格式。

myJson = {}
try:
    with open('myFile.csv', 'r') as f: #Read the csv file with read privileges.
            for line in f:
                lst = re.split(r' +', line.rstrip('\t')) #Columns are seperated with tabs.
                if len(lst) == 3: #There are three columns in the file:
                    n = lst[0].strip() #Names 
                    v = lst[1].strip() #Values 
                    p = lst[2].strip() #Percentages 
                    try:
                        myJson[n].append(v) #Add values to the according keys.
                    except KeyError:
                            myJson[n] = [v] #Handle potential KeyErrors.
except IOError:
    print "csv file has not been created yet."

最简单的方法是每次删除csv文件,但保留它并创建新的JSON文件对我来说会更有用。

1 个答案:

答案 0 :(得分:1)

我建议使用其他协议将您的数据从生产者转移到您的消费者,例如套接字或管道。 Lutz指出的方法当然也有用,但它依赖于使用OS提供的工具(尾部)。