如何从csv中删除列表?

2024-05-08 21:54:40 发布

您现在位置: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()

Tags: csvimport列表output属性osuse记录
1条回答
网友
1楼 · 发布于 2024-05-08 21:54:40

与其重新发明轮子,不如使用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,而不使用命令行客户机

相关问题 更多 >