python读取文件基础篇
Introduction
纠结了许久,在科研与计算机之间徘徊了很久,但是依旧稀里糊涂的不知道自己想要的是啥,反正很纠结,等到过了这一段时间,等尘埃落定再来叙述自己狗血的剧情!好了,工作还是要继续呀,对于工作人士利用python处理文件在很大概率上可以起到事半功倍的效果,因此建议大家在平时的过程中多积累处理文件的技巧,今天我也遇到了类似的文件处理,由于跟以前所写的博文中处理的文件稍微有所不同,所以在此也简单写一下,好了废话不多说,开始我们的文件操作:
Method
首先第一步先简单浏览一下自己要处理的文件,以及所要提取的数据,下图显示了文件中我要提取的文件内容:
主要Binding Energy(eV)和Intensity(cps)为两行数据,但是总共有四块内容,相应内容如下,需要将这四块数据分别提取了不同的文件中,以便可以导入其他软件中进行数据分析。
首先一点就是这四块内容中的数据点的数量是不相等的,不能直接采用我之前博文中的处理方法,但是我随后想到既然数据点数量不同,何不将读取的数据点数量直接存在数组中进行调用即可,哈哈也是比较简单。对于四个不同的文件内容,直接利用字典就可以了,也是很简单的,但是也是懂了点脑子,搞定后,处理数据就很方便了!
Result
好了直接上代码就可以了:
print("Hello World!")
# python file post tools to XPS datas
with open("20170909_LH_1",'r') as f:
line = f.readline()
index = 0
number = [0,1005,380,460,480]
dic = {1:'width.txt',2:'O_1s.txt',3:'Ti_2p.txt',4:'C_1s.txt'}
while line:
if(line[:7]=='Kinetic'):
index = index+1
f.readline()
filename = dic[index]
file = open(filename,"w")
for i in range(number[index]):
Ek,Eb,cps,Tvalue = f.readline().split()
file.write("%12.6f \t %12.6f "%(float(Eb),float(cps)))
file.write('\n')
file.close()
line= f.readline()
如果有需要相应文件自己操作的可以发qq邮箱联系我:1307926582@qq.com;当然如果有其他问题也欢迎交流。
最后就是检讨自己算法没有刷,面经题目好好没有整理,惭愧惭愧!!!