006零基礎學Python:Python 檔案I/O和File方法--學習筆記

weixin_34054866發表於2017-06-28

Python 檔案I/O和File方法

  1. 概念擴充
  1. Input/Output,也就是輸入和輸出
    由於程式和執行時資料是在記憶體中駐留,由CPU這個超快的計算核心來執行,涉及到資料交換的地方,通常是磁碟、網路等,就需要IO介面;注意:輸入和輸出是一個相對的概念,但這裡都是針對我們的程式而言的。
  2. IO程式設計中,Stream(流)和緩衝概念
    IO程式設計中,Stream(流)是一個很重要的概念,可以把流想象成一個水管,資料就是水管裡的水,但是隻能單向流動。Input Stream就是資料從外面(磁碟、網路)流進記憶體,Output Stream就是資料從記憶體流到外面去。對於瀏覽網頁來說,瀏覽器和新浪伺服器之間至少需要建立兩根水管,才可以既能發資料,又能收資料。
    由於管道的傳輸可能雙發讀寫速度的不一致性,提高效率考慮,採用了緩衝技術;還是上面的例子,加上一個小桶,資料裝滿“桶”了,再讀寫傳輸。[有的地方叫做:同步和非同步;原理一樣。Java中也有類似概念,NIO後好像有了"塊"操作的概念]
  1. 常見的IO的操作
  2. 列印到螢幕
~~~
print "Python hello world,和我一起學python";
~~~
  1. 讀取鍵盤輸入
~~~python

方式1

str = raw_input("請輸入:");
print "你輸入的內容是: ", str

方式2

str = input("請輸入:");
print "你輸入的內容是: ", str
~~~

  1. 檔案操作:檔案的基本操作,增刪改查
  • 開啟:os.fdopen(fd[, mode[, bufsize]])
> ~~~python

f = open('python_text.txt', 'w')
~~~

  • file_name:file_name變數是一個包含了你要訪問的檔名稱的字串值。
  • ccess_mode:access_mode決定了開啟檔案的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個引數是非強制的,預設檔案訪問模式為只讀(r)。
  • buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問檔案時會寄存行。如果將buffering的值設為大於1的整數,表明了這就是的寄存區的緩衝大小。如果取負值,寄存區的緩衝大小則為系統預設。
  • 關閉:os.close(fd)

f = close()
~~~
使用系統資源,必須佔用,這個是個 好習慣

  • 重新命名(可修改目錄):os.renames(old, new)

os.rename( "python_text.txt", "new_python_text.txt" )
~~~
需要兩個引數,當前的檔名和新檔名

  • 刪除: os.remove(path)

os.remove( "new_python_text.txt")
~~~
需要提供要刪除的檔名作為引數。

  1. 目錄操作
  • **當前目錄下建立新的目錄 **:os.mkdir(path[, mode])

os.mkdir("newdir")

需要提供一個包含了要建立的目錄名稱的引數
**注意 **:*當前目錄下建立

-  **改變當前的目錄**:os.chdir(path)
> ~~~python
    # 將當前目錄改為"/home/newdir"
  os.chdir("/home/newdir")
    #給出當前的目錄
    print os.getcwd()
  • **刪除目錄 **:os.remove(path)

os.rmdir('dirname')

刪除" /tmp/test"目錄的例子。目錄的完全合規的名稱必須被給出,否則會在當前目錄下搜尋該目錄。

- 補充和追加內容:
> IO和File這部分內容可以實現蠻多的操作,例如檔案的批量新建、拷貝等,包括使用正則時找你要的檔案等...

1. 檔案的讀寫操作
read(file_name [, access_mode][, buffering])
write(file_name [, access_mode][, buffering])
注意:返回的是檔案物件
>~~~python
  f = open('python_text.txt', 'w')
  f.write("hello_python")
  f.close()
  f=open('python_text.txt', 'r')
  s = f.read()
  f.close()
  • file_name:file_name變數是一個包含了你要訪問的檔名稱的字串值。
  • access_mode:access_mode決定了開啟檔案的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個引數是非強制的,預設檔案訪問模式為只讀(r)。
  • buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問檔案時會寄存行。如果將buffering的值設為大於1的整數,表明了這就是的寄存區的緩衝大小。如果取負值,寄存區的緩衝大小則為系統預設。
  • 開啟檔案的模式
    好多就截圖了,可以記住常用就可以(也i挺好記的)


    1625340-f11f8d922a09cc6b.png
    開啟檔案的模式
  • 最後結語:aboutmore

其實上面介紹的都是常用的部分
以下擴充:

  1. 新增總結思維導圖:【剛開始分享百度腦圖】http://naotu.baidu.com/file/3e40949648c3e50b003adeebe334c063?token=2d1fecb7301358ce
  2. 程式碼比較簡單不貼了,後期看上傳值github或者coding吧!

時間:2017年6月28日00:56:25

相關文章