我有一个包含3600行的主CSV文件。我想一次遍历文件100行,然后将它们保存到自己的CSV文件中,因此总共有36个CSV文件。
预期结果:
CSV 1-第1-100行
CSV 2-第101-201行
等
我尝试使用一些开放代码行,并获得了半自动解决方案,但是我不得不重命名文件并增加行数。
from itertools import islice
import csv
with open("MKT1902 - MYLD Master Data.csv", "r") as myfile:
head = list(islice(myfile, 101))
with open("MYLD July Data - 1.csv", "w") as f2:
for item in head:
f2.write(item)
AcctNo MotCode Full Name Addr1 City ST Zip Salutation
CON-123 10005876 Mr. Tom Smith 123 E Main St Orlando FL 12345 Mr. Smith
CON-124 10005876 Ms. Jane Doe 124 E Main St Orlando FL 12345 Ms. Doe
CON-125 10005876 Mr. Jeremy Grady 125 E Main St Orlando FL 12345 Mr. Grady
CON-126 10005876 Ms. Sara Rogers 126 E Main St Orlando FL 12345 Ms. Rogers
CON-127 10005876 Mrs. Terra Miller 127 E Main St Orlando FL 12345 Mrs. Miller
CON-128 10005876 Mr. Jack Schultz 128 E Main St Orlando FL 12345 Mr. Schultz
CON-129 10005876 Mr. Bryan Saturno 129 E Main St Orlando FL 12345 Mr. Saturno
CON-130 10005876 Mr. Will Francis 130 E Main St Orlando FL 12345 Mr. Francis
CON-131 10005876 Ms. Amy Lynn 131 E Main St Orlando FL 12345 Ms. Lynn
答案 0 :(得分:0)
如果您使用的是Linux,并且.csv文件中没有跨行的记录,则可以使用split
命令为您完成此操作。
Unix / Linux有许多用于处理诸如CSV文件之类的文本文件的工具。
这是一个例子:
这是我的master.csv
文件:
$ ls -l
total 280
-rw-rw-r-- 1 andy andy 286576 Jun 21 20:17 master.csv
它长13,449行
$ wc -l master.csv
13445 master.csv
我将使用一些参数调用split
,以指定我希望它被分解。
$ split --lines=100 --numeric-suffixes --suffix-length=3 master.csv part
现在我有135个以part
开头的文件。
$ ls
master.csv part016 part033 part050 part067 part084 part101 part118
part000 part017 part034 part051 part068 part085 part102 part119
part001 part018 part035 part052 part069 part086 part103 part120
part002 part019 part036 part053 part070 part087 part104 part121
part003 part020 part037 part054 part071 part088 part105 part122
part004 part021 part038 part055 part072 part089 part106 part123
part005 part022 part039 part056 part073 part090 part107 part124
part006 part023 part040 part057 part074 part091 part108 part125
part007 part024 part041 part058 part075 part092 part109 part126
part008 part025 part042 part059 part076 part093 part110 part127
part009 part026 part043 part060 part077 part094 part111 part128
part010 part027 part044 part061 part078 part095 part112 part129
part011 part028 part045 part062 part079 part096 part113 part130
part012 part029 part046 part063 part080 part097 part114 part131
part013 part030 part047 part064 part081 part098 part115 part132
part014 part031 part048 part065 part082 part099 part116 part133
part015 part032 part049 part066 part083 part100 part117 part134
每个零件文件长100行。这是前十名:
$ wc -l part00*
100 part000
100 part001
100 part002
100 part003
100 part004
100 part005
100 part006
100 part007
100 part008
100 part009
1000 total
最后5个
$ wc -l part13*
100 part130
100 part131
100 part132
100 part133
45 part134
445 total
当然,part134
文件只有45行。
这种方法的缺点是您不会在每个部分文件的顶部重复出现文件的第一行。