Python 是一种面向对象解释型计算机程序设计语言, 由 Guido van Rossum 于 1989 年底发明, 第一个公开发行版发行于 1991 年 Python 语法简洁而清晰, 具有丰富和强大的类库它常被昵称为胶水语言, 它能够把用其他语言制作的各种模块 (尤其是 C/C++) 很轻松地联结在一起
这篇文章主要介绍了 Python 实现按特定格式对文件进行读写的方法, 可实现文件按原有格式读取与写入的功能, 涉及文件的读取遍历转换写入等相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 Python 实现按特定格式对文件进行读写的方法分享给大家供大家参考, 具体如下:
- #! /usr/bin/env python
- #coding=utf-8
- class ResultFile(object):
- def __init__(self, res):
- self.res = res
- def WriteFile(self):
- fp = open('pre_result.txt', 'w')
- print 'write start!'
- try:
- for item in self.res:
- fp.write(item['host'])
- fp.write('\r')
- fp.write(str(item['cpu']))#write 方法的实参需要为 string 类型
- fp.write('\r')
- fp.write(str(item['mem']))
- fp.write('\n')
- finally:
- fp.close()
- print 'write finish!'
- def ReadFile(self):
- res = []
- fp = open('pre_result.txt', 'r')
- try:
- lines = fp.readlines()# 读取出全部数据, 按行存储
- finally:
- fp.close()
- for line in lines:
- dict = {}
- #print line.split() #like['compute21', '2', '4']
- line_list = line.split() #默认以空格为分隔符对字符串进行切片
- dict['host'] = line_list[0]
- dict['cpu'] = int(line_list[1])# 读取出来的是字符
- dict['mem'] = int(line_list[2])
- res.append(dict)
- return res
- if __name__ == '__main__':
- result_list=[{'host':'compute21', 'cpu':2, 'mem':4},{'host':'compute21', 'cpu':2, 'mem':4},
- {'host':'compute22', 'cpu':2, 'mem':4},{'host':'compute23', 'cpu':2, 'mem':4},
- {'host':'compute22', 'cpu':2, 'mem':4},{'host':'compute23', 'cpu':2, 'mem':4},
- {'host':'compute24', 'cpu':2, 'mem':4}]
- file_handle = ResultFile(result_list)
- #1 写入数据
- #print 'write start!'
- file_handle.WriteFile()
- #print 'write finish!'
- #2 读取数据
- res = file_handle.ReadFile()
- print res
写入的文件:
每一行的数据之间其实已经加入空格
运行结果:
- write start!
- write finish!
- [{'mem': 4, 'host': 'compute21', 'cpu': 2}, {'mem': 4, 'host':
- 'compute21', 'cpu': 2}, {'mem': 4, 'host': 'compute22', 'cpu': 2},
- {'mem': 4, 'host': 'compute23', 'cpu': 2}, {'mem': 4, 'host':
- 'compute22', 'cpu': 2}, {'mem': 4, 'host': 'compute23', 'cpu': 2},
- {'mem': 4, 'host': 'compute24', 'cpu': 2}]
实现了按原有格式写入和读取
来源: http://www.phperz.com/article/18/0217/361518.html