Pro124-泡面Python[Py#024]——20min-pro-简单数据处理

Python

简单数据处理

 学会了文件的输入输出之后,我们就可以开始尝试做一些简单的数据处理工作。


打开我们的源数据

 我们先预先设置一个txt文件,构建一个数据内容。(这里我选用了暗耻三国志的部分人物数据)

file  = open('..\Py-data\#024.txt')
lines = file.readlines()
#print(lines)
file.close()
Pro124-泡面Python[Py#024]——20min-pro-简单数据处理_第1张图片
数据结构

 这里使用了 readlines 函数,把数据文件里面的每一行数据进行转换为列表格式。
 可以看到,变量 lines 里面是列表结构存储数据内容的。


分割数据

 用一个for循环,将 line 每一行输出提取出来。再使用 split() 函数,将每个 list 的元素,转换为普通变量。

for line in lines:
   #print(line)
   data = line.split()
   #print(data)
Pro124-泡面Python[Py#024]——20min-pro-简单数据处理_第2张图片
分割数据

 line 是这一 list 的元素被单独提炼出来,data是用来存储每次for循环split出来的每一个元素。
注意:lines 被 line 提炼出来单个列表元素,data 再通过split()函数,将 line 分解成新的列表元素。


数据运算

 经过数据分割之后的数据,每一行,都单独分为一个列表格式的结构,存在data之中,那么我们现在在这个 for 循环中建立一个新的循环结构,

for line in lines:
   data = line.split()
   sum = 0
   for score in data[1:]:
       sum += int(score)
       #print(sum)
   result = '%s \t: %d\n' % (data[0], sum)
   #print(result)

 我们知道line从lines中提炼出每一行数据,data通过split在line中,将每一行数据的每个元素提炼出来。其中可以看见,data除了第一个数据是名称以外,其余的都是数值。这是就可以重制一个sum变量,在下一级的for循环之前,将累加值变量sum重置为0。

Pro124-泡面Python[Py#024]——20min-pro-简单数据处理_第3张图片
数据运算

 可以看到,内嵌的for循环,会用 score 变量,将data内部的元素,由[1:]开始提取至最后一位,每次for循环累加进入sum中,然后会输出本轮循环的sum值。
 最后在内嵌for循环外,外for循环中,加上result的结果。


整合处理之后的数据

 外部的for循环的最后,加下列语句。

   results.append(result)
   #print(results)

 这个results是for循环之外定义的一个空列表,通过append()函数对其进行追加输入内容。


追加效果

 我们可以看到,在效果运行之后,我们的results将之前的每一行的result进行内容追加。


打包输出数据文件

 使用我们之前学过的写文件课程,我们来将现在这个数据输出为数据文件。

targetfile  = open('..\Py-data\#024-output.txt','w')
targetfile.writelines(results)
targetfile.close()
Pro124-泡面Python[Py#024]——20min-pro-简单数据处理_第4张图片
运行效果

 注意results这个地方对接上数据,函数不要拼写错误。


完整简化代码

#  读取数据源
file  = open('..\Py-data\#024.txt')
lines = file.readlines()
file.close()
#  初始化
results = []   
#  数据处理
for line in lines:
   data = line.split()
   sum = 0
   for score in data[1:]:
       sum += int(score)
   result = '%s \t: %d\n' % (data[0], sum)
   results.append(result)
#  输出数据结果
targetfile  = open('..\Py-data\#024-output.txt','w')
targetfile.writelines(results)
targetfile.close()
Pro124-泡面Python[Py#024]——20min-pro-简单数据处理_第5张图片
数据处理效果

 这段时间我在休假,休假就去很多地方玩了,基本没更文章,其实积压了很多内容,像今天的课程,其实还有蛮多的内容之前没有教的,现在都直接用上了。
 不过反向学习也是不错的,接下来我们会倒回头去学习这节课中用到的,之前没教过的内容。

你可能感兴趣的:(Pro124-泡面Python[Py#024]——20min-pro-简单数据处理)