如何从csv文件中提取和复制行到python中的另一个csv文件?
问题描述:
让我们假设我有一个CSV文件中的大数据:这是一组从我的文件中的行:如何从csv文件中提取和复制行到python中的另一个csv文件?
frame.number frame.len frame.cap_len frame.Type
1 100 100 ICMP_tt
2 64 64 UDP
3 100 100 ICMP_tt
4 87 64 ICMP_nn
我想从这个文件中提取30%,并把它放在另一个csv文件。
我尝试通过使用此代码,但它给了我选择每行,每行不:
import csv
data = [] #Buffer list
with open("E:\\Test.csv", "rb") as the_file:
reader = csv.reader(the_file, delimiter=",")
for line in reader:
try:
new_line = [line[0], line[1]]
#Basically ´write the rows to a list
data.append(new_line)
except IndexError as e:
print e
pass
with open("E:\\NewTest.csv", "w+") as to_file:
writer = csv.writer(to_file, delimiter=",")
for new_line in data:
writer.writerow(new_line)
我尝试
答
的Python csv
模块使用,
默认情况下,所以它不需要指定分隔符,除非你有一个不同的分隔符。我想你有以下csv文件:
frame.number,frame.len,frame.cap_len,frame.Type
1,100,100,ICMP_tt
2,64,64,UDP
3,100,100,ICMP_tt
4,87,64,ICMP_nn
该文件中的每一行代表一行。
# read
data = []
with open('test.csv', 'r') as f:
f_csv = csv.reader(f)
# header = next(f_csv)
for row in f_csv:
data.append(row)
# write
with open('newtest.csv', 'w+') as f:
writer = csv.writer(f)
for i in range(int(len(data) * 30/100)):
writer.writerow(data[i])
谢谢你的回答,但我需要从我的文件中只复制30% – tierrytestu
当你得到30%的文件时,你可以停止循环。 'len(data)* 30/100)'会给你30%的行号。 – metmirr