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;当然如果有其他问题也欢迎交流。
最后就是检讨自己算法没有刷,面经题目好好没有整理,惭愧惭愧!!!