我想要做的就是在每条记录的末尾创建一个没有换行符\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()
答案 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,而不是使用命令行客户端。