[英]copy all except first row into new csv file python
我每天生成幾個 csv 文件,我正在嘗試編寫一個 python 腳本,它將打開每個 csv 文件,一個接一個,將 csv 重寫到新位置並填寫文件名中的任務信息。
我已經能夠拼湊出單獨的 python 腳本來完成大部分工作,但我遇到了麻煩。
每個 CSV 都有一個標准文件名:“Number_Name_Location.csv”
第 1 行有一個 header 標記每一列、名稱、位置、日期等,並且每個 csv 可以有 n 個預填充行。
我試圖自動化的是以下步驟:
下面是拼湊的代碼,它覆蓋了 header 行,我如何調整代碼以忽略它正在打開的 csv 中的第一行,只從第 1 行開始復制
import glob
import csv
from datetime import date
with open('Parsed/output.csv', 'w', newline='') as f_output:
csv_output = csv.writer(f_output)
for filename in glob.glob('*.csv'):
with open(filename, newline='') as f_input:
csv_input = csv.reader(f_input)
filename_parts = filename.split("_")
#print(filename_parts[0])
for row in csv_input:
row[0] = filename_parts[0]
row[1] = date.today()
row[10] = filename_parts[1]
row[11] = filename_parts[2]
csv_output.writerow(row)
open(filename, newline='')
對我來說似乎很奇怪。 你確定要newline=''
嗎?
您可以通過在 for 循環之前手動執行f_input.readline()
來跳過第一行。 這將讀取(=跳過)第一行,for 循環將從下一行開始。
或者您可以for row in csv_input[1:]
但我不確定是否可行並且現在無法對其進行測試。 ( [1:]
表示跳過任何類似列表的變量中的第一項(正式名稱: Iterable
))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.