python处理文本
最近在进行一些实验,需要进行文本处理,提取文本中关键的字段数据,得到表格,进行分析。在此简要的进行记录。
一、需求是这样的:
- 'gpu_sim_insn',
- 'gpu_ipc',
- 'L1I_total_cache_accesses',
- 'L1D_total_cache_accesses',
- 'gpgpu_n_tot_thrd_icount',
- 'gpgpu_n_tot_w_icount',
- 'gpgpu_n_mem_read_local',
- 'gpgpu_n_mem_write_local',
- 'gpgpu_n_mem_read_global',
- 'gpgpu_n_mem_write_global',
- 'gpgpu_n_mem_texture',
- 'gpgpu_n_mem_const',
- 'gpgpu_n_load_insn',
- 'gpgpu_n_store_insn',
- 'gpgpu_n_shmem_insn',
- 'gpgpu_n_tex_insn',
- 'gpgpu_n_const_mem_insn',
- 'gpgpu_n_param_mem_insn'
- import re
- import sys
- import os,glob
- #定义目录:目录下有多个文件需要处理
- path = 'D:\\GPUClusters\\Stargazer-master\\EXP_RESULT'
- #定义输出文件
- fout = open("res.txt",'w')
- x = [
- 'gpu_sim_insn',
- 'gpu_ipc',
- 'L1I_total_cache_accesses',
- 'L1D_total_cache_accesses',
- 'gpgpu_n_tot_thrd_icount',
- 'gpgpu_n_tot_w_icount',
- 'gpgpu_n_mem_read_local',
- 'gpgpu_n_mem_write_local',
- 'gpgpu_n_mem_read_global',
- 'gpgpu_n_mem_write_global',
- 'gpgpu_n_mem_texture',
- 'gpgpu_n_mem_const',
- 'gpgpu_n_load_insn',
- 'gpgpu_n_store_insn',
- 'gpgpu_n_shmem_insn',
- 'gpgpu_n_tex_insn',
- 'gpgpu_n_const_mem_insn',
- 'gpgpu_n_param_mem_insn'
- ]
- #改变路径
- os.chdir(path)
- #遍历目录下的所有文件
- for filename in os.listdir():
- fs = open(filename,'r+')
- #处理文件中的每一行数据
- for line in fs.readlines():
- a = line.split()
- if a != [] and a[0] in x:
- fout.write(a[-1]+'\t')
- if a[0] == 'gpgpu_n_param_mem_insn':
- fout.write('\n')
- break
- fout.write('\n')
- fout.close()
解释一下代码中的几个问题:
- #比如d:\work下面是你要读取的文件,代码可以这样写:
- import os
- path = 'd:\\work' #or path = r'd:\work'
- os.chdir(path)
- for filename in os.listdir():
- file = open(filename,'r')
- for eachline in file.readlines():
- #process eachline
2.Python中.read(), .readline(), .readlines()区别?
Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: .read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。
.readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用:
- fh = open('c:\\autoexec.bat')
- for line in fh.readlines():
- print line
.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。
3.split方法:http://www.w3cschool.cc/python/att-string-split.html
- boy:what's your name?
- girl:my name is lebaishi,what about you?
- boy:my name is wahaha.
- girl:i like your name.
- ==============================================
- girl:how old are you?
- boy:I'm 16 years old,and you?
- girl:I'm 14.what is your favorite color?
- boy:My favorite is orange.
- girl:I like orange too!
- ==============================================
- boy:where do you come from?
- girl:I come from SH.
- boy:My home is not far from you,I live in Jiangsu province.
- girl:Let's be good friends.
- boy:OK!
需求:将文件(record.txt)中的数据进行分割并按照以下规律保存起来:
- boy_log = []
- girl_log = []
- version = 1
- def save_to_file(boy_log,girl_log,version):
- filename_boy = 'boy_' + str(version) + ".txt"
- filename_girl = 'girl_' + str(version) + ".txt"
- fb = open(filename_boy,"w")
- fg = open(filename_girl,"w")
- fb.writelines(boy_log)
- fg.writelines(girl_log)
- fb.close()
- fg.close()
- def process(filename):
- file = open(filename,"r")
- for eachline in file.readlines():
- if eachline[:6] != "======":
- mylist = eachline.split(":")
- if mylist[0] == "boy":
- global boy_log
- boy_log.append(mylist[-1])
- else:
- global girl_log
- girl_log.append(mylist[-1])
- else:
- global version
- save_to_file(boy_log,girl_log,version)
- version += 1
- boy_log = []
- girl_log = []
- save_to_file(boy_log,girl_log,version)
- if __name__ == "__main__":
- fn = "record.txt"
- process(fn)
- #/usr/bin/python
- import sys
- import os
- os.system("ifconfig > ip.info")
- fs = open("ip.info",'r+')
- flag = 0
- def get_ip():
- for line in fs.readlines():
- a = line.split()
- if a != [] and a[0] == "eth0":
- flag = 1
- if a != [] and a[0] == "lo":
- flag = 0
- if flag == 0:
- continue
- else:
- for item in a:
- if a[0] == "inet" and item[0:5] == "addr:":
- return item[5:]
- ip = get_ip()
- print ip
python处理文本相关推荐
- 如何用python读取文本中指定行的内容
如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...
- python 图片 文本 矫正
python 图片 文本 矫正 代码 # -*- coding: UTF-8 -*- import numpy as np import cv2 import os ## 图片旋转 def rotat ...
- python.freelycode.com-通过OpenCV和Python进行文本倾斜校正
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 本文所展示的是一个由Pyhton实现的文本倾斜校正的脚本,在实现中使用到了OpenCV和Python的图像 ...
- 快速排序 python菜鸟教程-Python菜鸟文本处理4种方法
https://www.xin3721.com/eschool/pythonxin3721/ 自从认识了python这门语言,所有的事情好像变得容易了,作为小白,逗汁儿今天就为大家总结一下python ...
- lda 可以处理中文_用python处理文本数据
用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...
- 教你利用python处理文本
我是个C/C++ Coder,并不是专业写python的,python lua其实属于一类语言,只不要python的库更多,强大之处并不完全是python语言特性,而且扩展库比较多,请允许我黑一下py ...
- python中数据用折线图表示_用python处理文本数据
用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...
- python输出文本和值_python读取文本中数据并转化为DataFrame的实例
在技术问答中看到一个这样的问题,感觉相对比较常见,就单开一篇文章写下来. 从纯文本格式文件 "file_in"中读取数据,格式如下: 需要输出成"file_out&quo ...
- python计算现场得分_浅谈用 Python 计算文本 BLEU 分数
浅谈用 Python 计算文本 BLEU 分数 BLEU, 全称为 Bilingual Evaluation Understudy(双语评估替换), 是一个比较候选文本翻译与其他一个或多个参考翻译的评 ...
- Python发送文本邮件
在运行机器学习等需要大量计算的程序时,可以在报错或者程序运行完成时,发送邮件提醒. 参考:Python发送邮件(文本邮件发送) # 运行完,发邮件提醒 # 参考 https://blog.csdn.n ...
最新文章
- 图解全球无人驾驶产业链:这些公司在主宰人类出行的未来
- 企业建设网站之前需要做好哪些基本了解?
- Spring事务失效的 8 大原因,这次可以吊打面试官了!
- SpringMvc的服务器端跳转和客户端跳转
- SATA盘与SAS盘的区别
- java maven 操作 收集的一些命令
- linux转码软件下载,格式工厂linux版
- JavaScript 九种跨域方式实现原理 1
- LeetCode(905)——按奇偶排序数组(JavaScript)
- jsp标签使用技巧整理
- [微信小程序] js变量名称写活
- 【Vegas原创】红烧肉的做法
- 22. DOM 简介
- Volley源码解析(一)
- 磁珠 符号_电子元件磁珠该如何使用呢?
- quartus13.0用原理图输入法设计8位全加器
- LiveData原理解析
- 【Y9000P 2022 GTX3060 CUDA安装记录】
- 乐2的android版本,乐视2高通|MIUI10|安卓6.0|最终完美版|极速_最新最全的乐2高通版ROM刷机包下载、刷机...
- iQOONeo6SE和红米k40区别 哪个好 iQOONeo6SE和红米k40哪个值得买 两者配置对比