循环大型CSV文件

时间:2017-09-24 19:30:47

标签: python-3.x itertools

我正在尝试遍历一个大型CSV文件,将所有行但是变量名称写入一个新文件,同时使用有效的方法进行操作。我正在使用来自itertools的islice。有没有人提供比我下面的代码更有效的方法?

from itertools import islice
var = len(csv)

with open("csv_file1.csv") as file1, open("trial1.csv", 'w') as file2:
    head1 = list(islice(file1, var))[0].split(",")
    while (var > 1): 
        for line in head1:
            file2.write(str(head1))
            file2.write("\n")
            var = var - 1
            print(var)
file2.close()

1 个答案:

答案 0 :(得分:2)

  • 按照评论
  • 中的建议使用csv模块
  • 将传入的文件包装到生成器中,这是处理任何流的一种很好的做法,包括csv文件
def read_csv(filename):
    with open(filename) as f:
        reader = csv.reader(f)
        for row in reader:
            yield row

之后read_csv("csv_file1.csv")为您提供了一个生成器,您可以在for循环中使用它,也可以将map / filter函数应用于它,具体取决于行转换的逻辑。