Python如何快速讀取資料檔案若干行

2021-08-28 07:56:15 字數 1695 閱讀 1856

用python進行資料分析的童鞋們,經常遇到的問題就是遇到乙個資料檔案,大概幾百兆,而只需要其中若干行資料。那麼我們怎麼辦?最笨的辦法,就是一次性將所有的檔案資料載入到記憶體中再做索引或切片處理,可能一次性載入就需要耗費一點時間。如果重複性地做這種事情,你都會覺得不好意思跟自己交代。

1. 讀取檔案頭部若干行

2. 讀取檔案尾部若干行

3. 讀取檔案任意位置若干行

當然,你可以直接記住「讀取檔案任意位置若干行」這個大招,不用管其它。。

fp = open('test.txt', 'r')

n_lines = 9 ## 設定需要讀取的行數

while n_lines>0:

print fp.readline(),

n_lines -= 1

fp.close()

fp = open('test.txt', 'r')

fp.seek(0, 2) # again set the pointer to the end

file_size = fp.tell()

n_lines = 9 ## 設定需要讀取的行數

## 1.讀取合適大小的內容

k, buffer_size = 1, 1024*1024

while k*buffer_size<=file_size:

fp.seek(-k*buffer_size, 2)

lines = fp.read()

n_k = 0

for c in lines[::-1]:

if c == '\n':

n_k += 1

if n_k<=n_lines:

k += 1

else:

break

fp.seek(-k*buffer_size, 2)

lines = fp.read()

## 2.輸出規定的行數

rindex = lines.rfind('\n')

while n_lines>0:

rindex = lines.rfind('\n', 0, rindex)

n_lines -= 1

print lines[rindex+1:]

fp.close()

import csv

import pandas as pd

def loaddata(file_path, skip_n, rows_n):

lines = sum(1 for _ in csv.reader(open(file_path)))

# print lines

data = pd.read_csv(file_path,

engine='c',

header=none,

skiprows=lines-skip_n,

nrows=rows_n,

)return data

n_to_end = 9

n_lines = 9

data = loaddata('test.txt', n_to_end, n_lines) # 從倒數第n_to_end行數開始讀取n_lines行

print data

python快速讀取excel

python處理excel資料也是經常需要用到的。本文介紹2種python讀取excel的方法 openpyxl和pandas。事實上,pandas讀取excel比openpyxl更方便,有需要的直接往後拉,看第二種。import openpyxl excel name t1.xlsx wb ope...

快速讀取SharedPreferences資料

在開發時時常要用到sharedpreferences存入和讀取一些資料,如果activity很多的話,每次都定義一次sharedpreferences非常麻煩。其實可以很簡單地將sharedpreferences的讀寫抽出來形成乙個工具類,方便呼叫 public class sharedprefer...

PHP如何快速讀取大檔案

在php中,對於檔案的讀取時,最快捷的方式莫過於使用一些諸如file file get contents之類的函式,簡簡單單的幾行 就能 很漂亮的完成我們所需要的功能。但當所操作的檔案是乙個比較大的檔案時,這些函式可能就顯的力不從心,下面將從乙個需求入手來說明對於讀取大檔案時,常用的操作方法。需求需...