您的位置:首页 > 编程语言 > Python开发

python读写文件,分析字符串及读取目录下文件名的实践

2011-12-20 01:08 911 查看
读取的文件是:C:\Users\jetway\Desktop\a.txt

内容为:

vol-a987889b | 20M | null | available | 2011-11-25 13:11:20 | null

vol-e68ffaa9 | 200M | | available | 2011-11-18 02:56:45 |

vol-f2483bd1 | 1G | null | in-use | 2010-11-16 11:30:52 | | Attached | | ddc | vm1 | /dev/xvda3 | 2010-11-16 11:35:11 |

全部读取文件:

>>> fileHandle = open('C:\\Users\\jetway\\Desktop\\a.txt')

>>> print fileHandle.read()

vol-a987889b | 20M | null | available | 2011-11-25 13:11:20 | null

vol-e68ffaa9 | 200M | | available | 2011-11-18 02:56:45 |

>>> fileHandle.close()

逐行读取文件:

>>> fileHandle = open('C:\\Users\\jetway\\Desktop\\a.txt')

>>> print fileHandle.readline()

vol-a987889b | 20M | null | available | 2011-11-25 13:11:20 | null

>>> print fileHandle.tell()

68

>>> print fileHandle.readline()

vol-e68ffaa9 | 200M | | available | 2011-11-18 02:56:45 |

>>> print fileHandle.tell()

127

>>> fileHandle.close()

分析文件中的字符串,初步,先读取并赋值:

>>> def ana():

fileHandle = open('C:\\Users\\jetway\\Desktop\\a.txt')

a = fileHandle.readline()

b = fileHandle.readline()

fileHandle.close()

print "a= " + a + "\n" + "b= "+b

>>> ana()

a= vol-a987889b | 20M | null | available | 2011-11-25 13:11:20 | null

b= vol-e68ffaa9 | 200M | | available | 2011-11-18 02:56:45 |

这次是分离字符串,以“|”为界限:

>>> def splitstr():

fileHandle = open('C:\\Users\\jetway\\Desktop\\a.txt')

a = fileHandle.readline()

fileHandle.close()

aa = a.split('|')

for i in aa:

i.strip()

for j in aa:

print j+'\n'

>>> splitstr()

vol-a987889b

20M

null

available

2011-11-25 13:11:20

null

我的目标是:分析其中的文字并提取相应的信息

于是最终的代码为:

def index():

vlist = []

vbsvols = []

fileHandle = open('c:\\Users\\jetway\\Desktop\\a.txt')

while True:

s = fileHandle.readline()

if s=="":

break

else:

s = s.strip()

vlist.append(s)

fileHandle.close()

for v in vlist:

x = v.split('|')

for xx in x:

xx.strip()

ss = {"vid":x[0], "size":x[1], "status":x[3], "createdtime":x[4]}

vbsvols.append(ss)

return vbsvols

去除两端空格后的代码:

def index():

vlist = []

vbsvols = []

fileHandle = open('c:\\Users\\jetway\\Desktop\\a.txt')

while True:

s = fileHandle.readline()

if s=="":

break

else:

s = s.strip()

vlist.append(s)

fileHandle.close()

for v in vlist:

x = v.split('|')

for xx in x:

xx.strip()

ss = {}

if x[3].strip() == "available":

ss = {"vid":x[0].strip(), "size":x[1].strip(), "status":x[3].strip(), "createdtime":x[4].strip(), "attachat":"none"}

elif x[3].strip() =="in-use":

ss = {"vid":x[0].strip(), "size":x[1].strip(), "status":x[3].strip(), "createdtime":x[4].strip(), "attachat":x[10].strip()}

vbsvols.append(ss)

return vbsvols

补充:寻找某文件夹下的txt文件:

>>> import fnmatch

>>> import os

>>> import re

>>> filePattern = fnmatch.translate('*.txt')

>>> for fileName in os.listdir('C:\\Users\\jetway\\Desktop\\'):

if re.match(filePattern, fileName):

print fileName
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐