Python 文件I/O和File方法
- 概念擴充
- Input/Output,也就是輸入和輸出
由于程序和運行時數據是在內存中駐留,由CPU這個超快的計算核心來執(zhí)行,涉及到數據交換的地方,通常是磁盤、網絡等,就需要IO接口;注意:輸入和輸出是一個相對的概念,但這里都是針對我們的程序而言的。- IO編程中,Stream(流)和緩沖概念
IO編程中,Stream(流)是一個很重要的概念,可以把流想象成一個水管,數據就是水管里的水,但是只能單向流動。Input Stream就是數據從外面(磁盤、網絡)流進內存,Output Stream就是數據從內存流到外面去。對于瀏覽網頁來說,瀏覽器和新浪服務器之間至少需要建立兩根水管,才可以既能發(fā)數據,又能收數據。
由于管道的傳輸可能雙發(fā)讀寫速度的不一致性,提高效率考慮,采用了緩沖技術;還是上面的例子,加上一個小桶,數據裝滿“桶”了,再讀寫傳輸。[有的地方叫做:同步和異步;原理一樣。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的整數,表明了這就是的寄存區(qū)的緩沖大小。如果取負值,寄存區(qū)的緩沖大小則為系統(tǒng)默認。
- 關閉:os.close(fd)
f = close()
~~~
使用系統(tǒng)資源,必須占用,這個是個 好習慣
- 重命名(可修改目錄):os.renames(old, new)
os.rename( "python_text.txt", "new_python_text.txt" )
~~~
需要兩個參數,當前的文件名和新文件名
- 刪除: os.remove(path)
os.remove( "new_python_text.txt")
~~~
需要提供要刪除的文件名作為參數。
- 目錄操作
- **當前目錄下創(chuàng)建新的目錄 **:os.mkdir(path[, mode])
os.mkdir("newdir")
需要提供一個包含了要創(chuàng)建的目錄名稱的參數
**注意 **:*當前目錄下創(chuàng)建
- **改變當前的目錄**:os.chdir(path)
> ~~~python
# 將當前目錄改為"/home/newdir"
os.chdir("/home/newdir")
#給出當前的目錄
print os.getcwd()
- **刪除目錄 **:os.remove(path)
os.rmdir('dirname')
刪除" /tmp/test"目錄的例子。目錄的完全合規(guī)的名稱必須被給出,否則會在當前目錄下搜索該目錄。
- 補充和追加內容:
> IO和File這部分內容可以實現(xiàn)蠻多的操作,例如文件的批量新建、拷貝等,包括使用正則時找你要的文件等...
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的整數,表明了這就是的寄存區(qū)的緩沖大小。如果取負值,寄存區(qū)的緩沖大小則為系統(tǒng)默認。
-
打開文件的模式
好多就截圖了,可以記住常用就可以(也i挺好記的)
打開文件的模式 - 最后結語:aboutmore
其實上面介紹的都是常用的部分
以下擴充:
- 添加總結思維導圖:【剛開始分享百度腦圖】http://naotu.baidu.com/file/3e40949648c3e50b003adeebe334c063?token=2d1fecb7301358ce
- 代碼比較簡單不貼了,后期看上傳值github或者coding吧!
時間:2017年6月28日00:56:25
