本文实例讲述了Python实现按特定格式对文件进行读写的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#! /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 |
写入的文件:
每一行的数据之间其实已经加入空格。
运行结果:
1
2
3
4
5
6
7
|
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 }] |
实现了按原有格式写入和读取。
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/will130/article/details/50478481