常用读写数据

读取txt文件

方法一

逐行读取
f = open(file, 'r') ----> 常用的mode有如下几种: ‘r’只读,‘w’写入,‘a’追加,‘t’文本文件
for line in f.readlines():
first_line = lines[0] #取第一行
last_line = lines[-1] #取最后一行
f.close()

或者用with语句

with open('/tmp/test-file.txt', 'r') as f:
for line in f.readlines():
或者 tempdata = f.readlines() 全部读进去 以下为一实例

with open(os.path.join(mydatapath, 'goes-particle-flux-primary.txt')) as fh:
    # this will read EVERYTHING from the file, each row will be a string
    tempdata = fh.readlines()
tempdata = [line.strip() for line in tempdata]
#strip() #removes line breaks, trailing blanks, etc.

gheader = [line for line in tempdata if line[0] in [':', '#']]
print('Header (start and end only):\n\n{0}\n{1}'.format(gheader[0], gheader[1]))
print('...\n{0}\n{1}\n{2}'.format(gheader[-3], gheader[-2], gheader[-1]))

gbody = [line.split() for line in tempdata if line[0] not in [':', '#']] #breaks each line into parts, splitting on whitespace
gbody = np.asarray(gbody)

#now let's make a dictionary so we can access by variable name, then we'll put arrays inside it...
goesdata = dict()
goesdata['year'] = gbody[:, 0].astype(int)
goesdata['month'] = gbody[:, 1].astype(int)
goesdata['day'] = gbody[:, 2].astype(int)
goesdata['seconds_of_day'] = gbody[:, 5]
goesdata['flux_p'] = gbody[:, 6:12]
goesdata['flux_e'] = gbody[:, 12:]

用with 语句块的另一个附加好处就是不用写file.close()

方法二 numpy 的loadtxt

data = np.loadtxt(txtdir)
time, height = np.loadtxt('MyData.txt', skiprows=5 ,
usecols = (1,2), unpack=True
实例

#We'll use numpy's loadtxt function to read the data and ignore the header.
goesdata_np = np.loadtxt(os.path.join(mydatapath, 'goes-particle-flux-primary.txt'), comments=['#',':'])

#now inspect the shape of the data, so we know what array dimensions we are working with
print('The GOES data has dimensions {0}'.format(goesdata_np.shape))

#and we'll inspect the first line, which should be 15 elements long
print('Values in first row:\n {0}'.format(goesdata_np[0]))
方法三 pandas 中的readcsv

df=pd.read_csv(file,delim_whitespace = True )
sep如果不指定参数,会尝试使用逗号分隔, delim_whitespace = True 使用空格作为分隔
sc=df['sc'].astype(str).tolist() ------> dataframe 中的string array 转换成list
mlt=df[‘mlt’].astype(float).values ------> 转换成numpy array


写入txt 文件

方法一

每一行的写入
f = open(save_dir,'a’)
f.writelines(output)
f.close()

with open(file, 'w') as f:
f.write(…+'\n') ——>>> 只能是一个字符串

方法二 使用numpy中的savetxt

f='xxx/test.txt'
np.savetxt(f,np.column_stack(a,b,c),fmt='%1.4e')

加入header
info = 'Data for falling mass experiment'
info += '\nDate: 16-Aug-2013'
info += '\nData taken by Lauren and John'
info += '\n\n data point time (sec) height (mm) '
info += 'uncertainty (mm)'
np.savetxt('MyDataOut.txt', zip(dataPt, time, height, error), header=info, fmt="%12.1f")


f='/Users/xxx/fit_psd.txt'
np.savetxt(f,np.column_stack((ek,fit_fpe,fit_fpa)),fmt='%1.4e')


读取其他格式的数据

读取.sav 格式

data=scipy.io.readsav('proton_fit.sav’)
alpha0=data['alpha0']

读取mat 格式

import scipy.io
mat = scipy.io.loadmat('file.mat’)
event_l_shell=mat['event_l_shell’] ---> 转成float


快速保存读入

保存多个数组
ar2 = np.arange(4)
np.savez(r'C:\python数据分析\arraytest1.npz',my_name1=ar1, my_name2=ar2)
读取
A=np.load('array_save.npz')
ar1=a['my_name1']

保存h5文件

f = h5py.File('../output/Exy.h5','w')
iz_s,iz_e = 468,676
z = p.z[iz_s:iz_e]
ex = ex[iz_s:iz_e,:]
ey = ey[iz_s:iz_e,:]

f.create_dataset('wt',data=wt)
f.create_dataset('z',data=z)
f.create_dataset('ex',data=ex)
f.create_dataset('ey',data=ey)
f.close()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容