<pre><code>import csv
with open("readfile.csv", 'r') as r, open("writefile1.csv", 'w+', newline='') as v1, open("writefile2.csv", 'w+', newline='') as v2, open("writefile3.csv", 'w+', newline='') as v3, open("writefile4.csv", 'w+', newline='') as v4, open ("writefile5.csv", 'w+', newline='') as v5, open ("writefile6.csv", 'w+', newline='') as v6, open ("writefile7.csv", 'w+', newline='') as v7, open ("writefile8.csv", 'w+', newline='') as v8:
reader = csv.reader(r)
writerv1 = csv.writer(v1)
writerv2 = csv.writer(v2)
writerv3 = csv.writer(v3)
writerv4 = csv.writer(v4)
writerv5 = csv.writer(v5)
writerv6 = csv.writer(v6)
writerv7 = csv.writer(v7)
writerv8 = csv.writer(v8)
i = 0
for row in r:
nrow = list(row.strip().split(','))
if i == 0:
writerv1.writerow(nrow)
writerv2.writerow(nrow)
writerv3.writerow(nrow)
writerv4.writerow(nrow)
writerv5.writerow(nrow)
writerv6.writerow(nrow)
writerv7.writerow(nrow)
writerv8.writerow(nrow)
i += 1
else:
try:
if nrow[2][0]<='B':
writerv1.writerow(nrow)
elif nrow[2][0]<='D':
writerv2.writerow(nrow)
elif nrow[2][0]<='G':
writerv3.writerow(nrow)
elif nrow[2][0] <= 'L':
writerv4.writerow(nrow)
elif nrow[2][0] <= 'O':
writerv5.writerow(nrow)
elif nrow[2][0] <= 'R':
writerv6.writerow(nrow)
elif nrow[2][0] <= 'U':
writerv7.writerow(nrow)
else:
writerv8.writerow(nrow)
except:
writerv1.writerow(nrow)
</code></pre>
<p>我没有意识到除了使用strip之外,我还需要将它放入“list()”中,比如<code>nrow = list(row.strip().split(','))</code>。因为我第一次尝试时最后一列标题掉了,并且在末尾打印出“\n”,所以我添加了.strip()以消除空白</p>
<p>一开始我没有提到它,因为我非常专注于解决所有内容都属于同一列的问题,但另一个问题是,除了头以外的所有数据都将进入同一个文件。我现在明白为什么了。我还必须将条件更改为引用<code>nrow[2][0]</code>,即我的新列表(带有相应的元素和该元素的第一个字符),而不是引用<code>row[2][0]</code></p>