首页
学习
活动
专区
圈层
工具
发布

python读取大文件

python读取文件对各列进行索引 可以用readlines, 也可以用readline, 如果是大文件一般就用readline

代码语言:javascript
复制
d={}

a_in = open("testfile.txt", "r")

for line in a_in:
    columnssplit = line.rstrip().split("\t")
    d[columnssplit[0]]=columnssplit[1]

a_in.close()

ID_test = open("correlation.txt", "r")

for line in ID_test:
    s = line.rstrip().split("\t")
    if s[1] in d:
        print s[0]+"\t"+d[s[1]]
ID_test.close()

## Here is another example

f = open("test.txt", "r")  
while True:  
    line = f.readline()  
    if line:   #  或者用 if line != "":
        print line  
    else:  
        break  
f.close()

参考: http://blog.csdn.net/oldjwu/article/details/4329401

python 还有一个pandas 主要用于大数据分析, 它与matplotlib以及 numpy 结合可以替代R语言进行统计学分析, 获取dataframe的 各行内容,可以用iterrows() 和 itertuples(), 其中 itertuples() 比 iterrows()速度更快。

代码语言:javascript
复制
import pandas as pd

df1 = pd.read_csv("test.txt", header = None, sep='\t')

# 打印前三行
print df1[:3]

# 选取前三行的 前三列, 使用df.loc

df2 = df1.loc[:3, [0, 1, 2]]

print df2

# 替换第三列的部分内容

col3 = df2.apply(lambda r: r[2].replace("KH","TF"), axis=1)

# 合并第一列和替换后的第三列内容

df3 = pd.concat([df2[0], col3], axis = 1)

print df3

参考:

http://pandas.pydata.org/pandas-docs/

http://stackoverflow.com/questions/16476924/

http://stackoverflow.com/questions/13411544/

下一篇
举报
领券