使用python破坏两个文件中的csv文件

时间:2017-02-28 09:19:05

标签: python csv

这是我使用python的第一个项目,我在编程方面并不是那么出色。我有一个带有两个表的csv文件。

  • 表1标题
  • ROW1
  • ROW2
  • ...
  • 空行
  • 空行
  • 表2标题
  • ROW1
  • ROW2
  • ...

这是我的代码

import csv

csv_file = open('usagebased.csv')
csv_reader = csv.reader(csv_file, delimiter=',')
next(csv_reader)

所以我想将文件分成两个csv文件。最好的方法是什么?我可以根据标题2或空白行拆分文件吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

函数csv.reader可以接受符合迭代器协议的任何对象,并从next()输出一个字符串。知道了,您实际上可以通过空行将csv文件拆分为两个列表。之后,您可以为两个列表提供两个csv.reader

import csv

two_tables = open('usagebased.csv').read().split("\n\n\n")
# Feed first csv.reader
first_csv = csv.reader(two_tables[0], delimiter=',')
# Feed second csv.reader
second_csv = csv.reader(two_tables[1], delimiter=',')

答案 1 :(得分:0)

感谢你们两位我成功了。非常感谢你。

f = open('usagebased.csv').read().split("\n\n\n")
f1 = f[0]
f2 = f[1]

file1 = open('test1.csv','w')
file2 = open('test2.csv','w')

file1.write(f1)
file2.write(f2)

答案 2 :(得分:0)

如果我们不知道新行的数量,这可以提供帮助 ,我试着尽可能简单地编写代码: 既然你没有对文件里面的csv做任何事情,你就不需要使用csv库

FzListe
7MA1, 7OS1
7MA1, 7ZJB


7MA2, 7MA3, 7OS1
76G1, 7MA1, 7OS1
7MA1, 7OS1
71E5, 71E6, 7MA1, FSS1

这里是代码:

f= open('test.txt','rt')
while True:
 name = 0
 for s in f:
  if not s=='\n':
   with open(str(name),'at') as ff:
    ff.write(s)
  else:
   while s =='\n':
    s = next(f)
   name +=1
   with open(str(name),'at') as ff:
    ff.write(s)