我有一个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文件对我来说会更有用。
答案 0 :(得分:1)
我建议使用其他协议将您的数据从生产者转移到您的消费者,例如套接字或管道。 Lutz指出的方法当然也有用,但它依赖于使用OS提供的工具(尾部)。