python进程实例
来源:互联网 发布:求非线性方程的算法 编辑:程序博客网 时间:2024/05/18 05:59
需要用到的一些知识:
1.open() 文件操作
open(路径+文件名,读写模式)
f=open(‘/tmp/hello’,’w’)
读写模式:r只读, r+读写, w新建(会覆盖原有文件) ,a追加, b二进制文件. 常用模式
如:’rb’,’wb’,’r+b’等等
读写模式的类型有:
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
注意:
1、使用’W’,文件若存在,首先要清空,然后(重新)创建,
2、使用’a’模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。
f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回”“(空字串)
file.readline() 返回一行
file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
for line in f: print line #通过迭代器访问
f.write(“hello\n”) #如果要写入字符串以外的数据,先将他转换为字符串.
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.seek(偏移量,[起始位置]) 用来移动文件指针
偏移量:单位:比特,可正可负
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f.close() 关闭文件
2.python strip()函数
声明:s为字符串,rm为要删除的字符序列
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
注意:
- 当rm为空时,默认删除空白符(包括’\n’, ‘\r’, ‘\t’, ’ ‘)
- 这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。
3.python读取文件时提示:
“UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 205: illegal multibyte sequence”
解决办法1.
FILE_OBJECT= open(‘order.log’,’r’, encoding=’UTF-8’)
解决办法2.
FILE_OBJECT= open(‘order.log’,’rb’)
代码示例:
# 并行处理某个目录下文件中的字符个数和行数,存入res.txt文件中, # 每个文件一行,格式为:filename:lineNumber,charNumberimport osimport timefrom multiprocessing import Pooldef getFile(path) : #获取目录下的文件list fileList = [] for root, dirs, files in list(os.walk(path)) : # 遍历path下的所有文件 for i in files: if i.endswith('.py'): fileList.append(root + "\\" + i) # 得到了完整的路径 # print(fileList) # 打印符合条件的文件 return (fileList) # 打印符合条件的文件def operFile(filePath) : #统计每个文件中行数和字符数,并返回 with open(filePath,'r',encoding='utf-8') as f: # 以utf-8统一的编码格式 content=f.readlines() lines = len(content) alphaNum = 0 for i in content : alphaNum += len(i.strip('\n')) return filePath,lines,alphaNumdef out(list1, writeFilePath) : #将统计结果写入结果文件中 fileLines = 0 charNum = 0 with open(writeFilePath,'a') as fp: # 以追加的模式 for i in list1 : # 写入的第一个参数是path,第二个是行数,第三个是字符数 # 使用'w',文件若存在,首先要清空,然后(重新)创建 fp.write(i[0] + " 行数:"+ str(i[1]) + " 字符数:"+str(i[2]) + "\n") fileLines += i[1] charNum += i[2] print ('总的行数:',fileLines) print ('总的字符数:',charNum)if __name__ == "__main__": #创建多个进程去统计目录中所有文件的行数和字符数 startTime = time.time() filePath = 'C:\\Users\\LiLong\\Desktop\\python日常' fileList = getFile(filePath) pool = Pool(5) # 创造一个进程池,并且最多能容纳5个进程 resultList =pool.map(operFile, fileList) pool.close() pool.join() # 写入文件的路径 writeFilePath = "C:\\Users\\LiLong\\Desktop\\process\\rex.txt" print(resultList) out(resultList, writeFilePath) endTime = time.time() print("used time is ", endTime - startTime)
运行结果:
参考:
http://www.cnblogs.com/dkblog/archive/2011/02/24/1980651.html
http://blog.csdn.net/seetheworld518/article/details/49639651
- Python 多进程实例
- python 多进程实例
- python 多进程实例
- python进程实例
- python进程池编程实例
- python multiprocessing多进程实例
- 【Python】multiprocessing多进程实例
- Python学习之多进程实例
- python 多进程通信模块实例 代码
- python中限制进程实例个数实现
- python 多进程实例 进程间的通信
- python 多进程之管道实例(模板)
- python调用子进程实例,来自cherrypy-cgiserver
- python子进程模块subprocess详解与应用实例 之一
- python子进程模块subprocess详解与应用实例 之一
- python子进程模块subprocess详解与应用实例 一
- python子进程模块subprocess详解与应用实例 之一
- Python多进程并发(multiprocessing)用法实例详解
- CSS中margin和padding的区别
- FTPrep, 5 Longest Palindromic Substring
- autotools 系列工具安装以及使用方法
- 使用explain优化sql
- 3.Java设计模式-->适配器模式
- python进程实例
- Java设计模式之模板方法模式(Template Method)
- Linux上Qt程序闪退的BUG
- UART SPI I²C对比总结。
- urllib 代理
- 微信小程序+OLAMI自然语言API接口制作智能查询工具--快递、聊天、日历等
- 解决Vue请求 ‘No 'Access-Control-Allow-Origin' header is present on the requested resource’错误
- jzoj. 3928. 【NOIP2014模拟11.6】射击
- AppCan入门 JS SDK窗口模块