python讀寫文件,分析字符串及讀取目錄下文件名的實踐

 

讀取的文件是: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章