python 文件與目錄的操作   未完善 需要重新學習

文件與目錄的操作:

        -文件讀寫python進行文件讀寫的函數是open或file

                                file_handler =

                                open(filename,mode)

mode,

模式說明
r只讀
r+讀寫
w寫入,先刪除原文件,在重新寫入,如果文件沒有則 創建
w+讀寫,先刪除原文件,在重新寫入,如果文件沒有則創建(可以寫入輸出)

                讀範例:

>>> fo  = open('/tools/123/test.log')                                    #open函數打開文件
>>> fo
<open file '/tools/123/test.log', mode 'r' at 0x7fdc0c144d20>            #fo對象打開的文件,模式是read
>>> fo.read()
'a\n'                                                                    #查看文件中的數據
>>> fo,close()                                                           #關閉文件
>>> fo.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file                                #再次讀取文件,是關閉狀態
#################################利用file類打開文件##################################
>>> f1 = file('/tools/123/test.log')
>>> f1.read()
'a\n'
>>> f1.close()
>>> f1.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file
#方法同上

                寫範例:

>>> fnew = open('/tools/123/new.test','w')    #打開新的文件,注意w的引號,以值得形式傳入
#此處文件new.test已經存在
>>>fo.write('hello \n My name is kong')       #寫入數據,注意是在緩衝中,\n 換行
>>> fo.close()                                #關閉,即可保存數據
>>> fnew=open('/tools/123/new.log','w')       #注意w的特性,當它打開文件時,會清空原數據;
>>> fnew.write('I am NEW')                    #再次寫入數據
>>> fnew.close()

             使用r+打開文件:(查看後寫入數據)

>>> fnew=open('/tools/123/new.log','r+')
>>> fnew.read()                                #文件可讀
'I am NEW'  
>>> fnew.write('new contents')
>>> fnew.close()                              #查看文件保留原有數據,且寫入新的數據

                                         (直接寫入數據)

>>> fnew=open('/tools/123/new.log','r+')
>>> fnew.write('000 nihao')
>>> fnew.close()                              #查看文件內容

#文件中的數據,當我們去查看的時候,它會從第一個字母打印到最後一個字母,其實它有一個隱形的指針,從第一個字符開始讀取的時候 

   此處未學習完畢~~~  注意




OS模塊

        import os

        -目錄操作需要調用os模塊

         -比如

>>> import os 
>>> os.mkdir('/tools/csvt') 
>>> os.mkdir('test')

多級目錄創建makedirs()

>>> os.makedirs('a/b/c')

刪除目錄rmdir() 、removedirs()

>>> os.rmdir('test')
>>> os.rmdir('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 39] Directory not empty: 'a'
#提示目錄不爲空
>>> os.removedirs('a/b/c')
#注意多級目錄的刪除要寫明目錄列表

顯示當前路徑getcwd()

>>> os.getcwd()
'/tools/123'

顯示目錄列表listdir()

>>> os.listdir('.')
['test.log', 'new.log', 'new.test']
#.當前路徑,但是不包含子目錄
>>> os.listdir('/tools/123/')
['test.log', 'new.log', 'new.test']

切換目錄操作chdir:

>>> os.chdir('/usr/local/')
>>> os.getcwd()
'/usr/local'
#注意此切換僅僅是在python 環境中








文件對象操作:

        -FileObject.close()

        -String = FileObject.readline([size])

        -List = FileObject.readlines([size])

        -String = FileObject.read([size])

        -FileObject.next()

        -FileObject.write(string)

        -FileObject.writelines(list)

        -FileObject.seek(偏移量,選項)

        -FileObject.flush()


範例:

>>> for i in open('test.log'):
...      print i
... 
www.csvt.com
 i am milo
hello

        #遍歷test.log,依次打印每行,返回迭代變量

readline:

    -格式

        String=FileObject.readline(【size】)


    -說明:

        每次讀取文件的一行

        size:是指每行每次讀取size個字節,知道行的末尾

範例:

>>> f1 = open('test.log')
>>> f1.readline()
'www.csvt.com\n'
>>> f1.readline()
' i am milo\n'
>>> f1.readline()
'hello\n'
>>> f1.readline()
''

        #每次讀取一行,直到指正完畢

readlines

>>> f1.close()
>>> f1 = open('test.log')
>>> f1.readlines()['www.csvt.com\n', ' i am milo\n', 'hello\n']

        #把每行的數據作爲列表當中的元素進行返回


next:

    -格式:

      FileObject.next()

    -說明:

       .返回當前行,並將文件指針到下一行

範例:

>>> f1.close()
>>> f1=open('test.log')
>>> f1.next()
'www.csvt.com\n'
>>> f1.next()
' i am milo\n'
>>> f1.next()
'hello\n'
>>> f1.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

        #效果和readline類似,注意使用readline,超出範圍之後會讀取空字符串,而next,超出範圍之後,會停止迭代

write

        -格式:

             .FileObject.write(string)

          -說明:

            .write和後面的writelines在寫入前會是否清除文件中原來所有的數據,在重新寫入新的內容,取決於打開文件的模式

範例:



writelines:

        -格式:

             .FileObject.writelines(List)

          -說明:

            .多行寫

                .效率比write高,速度更快,少量寫入可以使用write

範例:

>>> l = ['one\n','two\n','three\n']
>>> f1 = open('test.log','a')
>>> f1.writelines(l)
>>> f1.close()


FileObject.seek(偏移量,選項)

         -選項=o時,表示將文件指針指向從文件頭部到”偏移量“字節處。

         -選項=1時,表示將文件指針指向從文件的當前位置,向後移動”偏移量“字節。

         -選項=2時,表示將文件指針指向從文件尾部,指向移動”偏移量“字節。


  需要重新學習



























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