006零基礎學Python:Python 檔案I/O和File方法--學習筆記
Python 檔案I/O和File方法
- 概念擴充
- Input/Output,也就是輸入和輸出
由於程式和執行時資料是在記憶體中駐留,由CPU這個超快的計算核心來執行,涉及到資料交換的地方,通常是磁碟、網路等,就需要IO介面;注意:輸入和輸出是一個相對的概念,但這裡都是針對我們的程式而言的。- IO程式設計中,Stream(流)和緩衝概念
IO程式設計中,Stream(流)是一個很重要的概念,可以把流想象成一個水管,資料就是水管裡的水,但是隻能單向流動。Input Stream就是資料從外面(磁碟、網路)流進記憶體,Output Stream就是資料從記憶體流到外面去。對於瀏覽網頁來說,瀏覽器和新浪伺服器之間至少需要建立兩根水管,才可以既能發資料,又能收資料。
由於管道的傳輸可能雙發讀寫速度的不一致性,提高效率考慮,採用了緩衝技術;還是上面的例子,加上一個小桶,資料裝滿“桶”了,再讀寫傳輸。[有的地方叫做:同步和非同步;原理一樣。Java中也有類似概念,NIO後好像有了"塊"操作的概念]
- 常見的IO的操作
- 列印到螢幕
~~~
print "Python hello world,和我一起學python";
~~~
- 讀取鍵盤輸入
~~~python
方式1
str = raw_input("請輸入:");
print "你輸入的內容是: ", str
方式2
str = input("請輸入:");
print "你輸入的內容是: ", str
~~~
- 檔案操作:檔案的基本操作,增刪改查
- 開啟: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")
~~~
需要提供要刪除的檔名作為引數。
- 目錄操作
- **當前目錄下建立新的目錄 **: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挺好記的) - 最後結語:aboutmore
其實上面介紹的都是常用的部分
以下擴充:
- 新增總結思維導圖:【剛開始分享百度腦圖】http://naotu.baidu.com/file/3e40949648c3e50b003adeebe334c063?token=2d1fecb7301358ce
- 程式碼比較簡單不貼了,後期看上傳值github或者coding吧!
時間:2017年6月28日00:56:25
相關文章
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- 零基礎學習 Python 之檔案Python
- Python零基礎學習筆記(四十)——datetime和CalendarPython筆記
- Python學習筆記|Python之檔案操作Python筆記
- Python學習筆記|Python之特殊檔案Python筆記
- Python零基礎學習筆記(三十二)——list/tuple/dict/set檔案操作Python筆記
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- python file 檔案操作筆記Python筆記
- Python零基礎學習筆記(九)——隨機數Python筆記隨機
- Python零基礎學習筆記(二十二)——setPython筆記
- Python零基礎學習筆記(二十)——tuple元組Python筆記
- Python基礎學習筆記Python筆記
- Python零基礎學習筆記(三十五)——記憶體修改Python筆記記憶體
- Python零基礎好學嗎?零基礎如何學習Python?Python
- Python學習筆記|Python之特殊方法Python筆記
- Python零基礎學習筆記(二十三)——迭代器Python筆記
- Python零基礎學習筆記(二十四)——函式Python筆記函式
- Python零基礎學習筆記(二十一)——dict字典Python筆記
- Python零基礎學習筆記(十八)——break語句和continue語句Python筆記
- python零基礎學習Python
- 零基礎學習pythonPython
- python學習筆記:第8天 檔案操作Python筆記
- Java I/O系統學習系列一:File和RandomAccessFileJavarandomMac
- python基礎學習筆記(一)Python筆記
- Python零基礎學習筆記(二)——資料的儲存Python筆記
- Python零基礎學習筆記(二十五)——裝飾器Python筆記
- [Python]學習基礎篇:檔案和目錄Python
- Python:讀寫檔案(I/O) | 組織檔案Python
- Python零基礎學習筆記(二十八)——異常處理Python筆記
- python基礎學習筆記(紙質)Python筆記
- Python學習筆記Python筆記
- 【學習筆記】python筆記Python
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- 零基礎Python學習路線Python
- 零基礎學習 Python 之字串Python字串
- 零基礎如何迅速學習python?Python
- 程式設計零基礎應當如何學習Python?Python學習程式設計Python
- 學習筆記專案實踐(python)筆記Python
- Python零基礎學習筆記(二十六)——變數的作用域Python筆記變數