从csv制作列表时如何删除\ n?

时间:2014-07-22 17:53:54

标签: python

我想要做的就是在每条记录的末尾创建一个没有换行符\n的属性列表。

import os, csv

output = os.system('hive -S -e "use precache; select geode from database WHERE geodetype = 17;" > testausnzl.csv')


f = open('testausnzl.txt').read()

print f 

ausnzl_list = open("testausnzl.csv").readlines()

1 个答案:

答案 0 :(得分:3)

不要重新发明轮子,而是使用csv模块进行阅读:

with open("testausnzl.csv", 'rb') as f:
    ausnzl_list = list(csv.reader(f))

这将删除换行符并生成行(用逗号分隔)。

您可以直接使用Python从命令中读取而不是临时文件名:

import csv
import subprocess

process = subprocess.Popen(
    ['hive', '-S', '-e', 
     '"use precache; select geode from database WHERE geodetype = 17;"'],
    buffer=1, stdout=subprocess.PIPE)
reader = csv.reader(process.stdout)
for row in reader:
    # process each row as you receive it

不是将所有内容都加载到列表中,而是代码只是循环遍历csv.reader()对象,以便在进入时处理每一行。这通常是更好,更有效的内存方法。

最好的方法是使用Python client to connect to hive,而不是使用命令行客户端。