選擇.csv文件中的每第5行只是一個普通的.csv文件 ,第一行具有每列的標題。如何使用python
我不知道如何創建一個新的.csv文件,它具有相同的標題(第一行),但包含原始文件的每第五行?
謝謝!
選擇.csv文件中的每第5行只是一個普通的.csv文件 ,第一行具有每列的標題。如何使用python
我不知道如何創建一個新的.csv文件,它具有相同的標題(第一行),但包含原始文件的每第五行?
謝謝!
這將一次讀取文件的一行,並只寫行5,10,15,20 ...
import csv
count = 0
# open files and handle headers
with open('input.csv') as infile:
with open('ouput.csv', 'w') as outfile:
reader = csv.DictReader(infile)
writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames)
writer.writeheader()
# iterate through file and write only every 5th row
for row in reader:
count += 1
if not count % 5:
writer.writerow(row)
(與Python 2的工作和3)
如果」 ð喜歡先從數據列#1寫入線1,6,11,16 ...頂部更改爲:
count = -1
這將採取任何文本文件,並輸出第一,每5行後那。它沒有被操縱爲.csv,如果不被訪問的列:
with open('a.txt') as f:
with open('b.txt','w') as out:
for i,line in enumerate(f):
if i % 5 == 0:
out.write(line)
如果你想使用的CSV庫,更緊密的版本將是...
import csv
# open files and handle headers
with open('input.csv') as infile:
with open('ouput.csv', 'w') as outfile:
reader = csv.DictReader(infile)
writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames)
writer.writeheader()
# iterate through file and write only every 5th row
writer.writerows([x for i,x in enumerate(reader) if i % 5 == 4])
「如果列未被訪問」僅當CSV中沒有多行字段時才爲true。你可以有一個合法的字段「line 1 \ nline 2」,它應該是輸出中的一個字段。 – dawg