[英]Skip first rows from CSV with Python without reading the file
我需要從 CSV 文件中跳過一些第一行並將其保存到另一個文件中。
我目前完成這些任務的代碼是:
import pandas as pd
df = pd.read_csv('users.csv', skiprows=2)
df.to_csv("usersOutput.csv", index=False)
它可以正常工作。 唯一的問題是:此代碼在保存之前讀取整個文件。 現在我的問題是:我必須處理一個 4GB 大小的文件,我認為這段代碼會非常耗時。
是否有可能跳過一些第一行並保存文件而無需事先閱讀?
您不需要使用pandas
來過濾文件中的行:
with open('users.csv') as users, open('usersOutput.csv', 'w') as output:
for lineno, line in enumerate(users):
if lineno > 1:
output.write(line)
使用shutil.copyfileobj(fsrc, fdst[, length])
功能最有效的方法:
from shutil import copyfileobj
from itertools import islice
with open('users.csv') as f_old, open('usersOutput.csv', 'w') as f_new:
list(islice(f, 2)) # skip 2 lines
copyfileobj(f_old, f_new)
從文檔:
...如果
fsrc
對象的當前文件位置不是0
,則只會復制從當前文件位置到文件末尾的內容。
即新文件將包含相同的內容,除了前 2 行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.