006零基礎(chǔ)學(xué)Python:Python 文件I/O和File方法--學(xué)習(xí)筆記

Python 文件I/O和File方法

  1. 概念擴充
  1. Input/Output,也就是輸入和輸出
    由于程序和運行時數(shù)據(jù)是在內(nèi)存中駐留,由CPU這個超快的計算核心來執(zhí)行,涉及到數(shù)據(jù)交換的地方,通常是磁盤、網(wǎng)絡(luò)等,就需要IO接口;注意:輸入和輸出是一個相對的概念,但這里都是針對我們的程序而言的。
  2. IO編程中,Stream(流)和緩沖概念
    IO編程中,Stream(流)是一個很重要的概念,可以把流想象成一個水管,數(shù)據(jù)就是水管里的水,但是只能單向流動。Input Stream就是數(shù)據(jù)從外面(磁盤、網(wǎng)絡(luò))流進(jìn)內(nèi)存,Output Stream就是數(shù)據(jù)從內(nèi)存流到外面去。對于瀏覽網(wǎng)頁來說,瀏覽器和新浪服務(wù)器之間至少需要建立兩根水管,才可以既能發(fā)數(shù)據(jù),又能收數(shù)據(jù)。
    由于管道的傳輸可能雙發(fā)讀寫速度的不一致性,提高效率考慮,采用了緩沖技術(shù);還是上面的例子,加上一個小桶,數(shù)據(jù)裝滿“桶”了,再讀寫傳輸。[有的地方叫做:同步和異步;原理一樣。Java中也有類似概念,NIO后好像有了"塊"操作的概念]
  1. 常見的IO的操作
  2. 打印到屏幕
~~~
print "Python hello world,和我一起學(xué)python";
~~~
  1. 讀取鍵盤輸入
~~~python

方式1

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

方式2

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

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

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

  • file_name:file_name變量是一個包含了你要訪問的文件名稱的字符串值。
  • ccess_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數(shù)是非強制的,默認(rèn)文件訪問模式為只讀(r)。
  • buffering:如果buffering的值被設(shè)為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設(shè)為大于1的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。
  • 關(guān)閉:os.close(fd)

f = close()
~~~
使用系統(tǒng)資源,必須占用,這個是個 好習(xí)慣

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

os.rename( "python_text.txt", "new_python_text.txt" )
~~~
需要兩個參數(shù),當(dāng)前的文件名和新文件名

  • 刪除: os.remove(path)

os.remove( "new_python_text.txt")
~~~
需要提供要刪除的文件名作為參數(shù)。

  1. 目錄操作
  • **當(dāng)前目錄下創(chuàng)建新的目錄 **:os.mkdir(path[, mode])

os.mkdir("newdir")

需要提供一個包含了要創(chuàng)建的目錄名稱的參數(shù)
**注意 **:*當(dāng)前目錄下創(chuàng)建

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

os.rmdir('dirname')

刪除" /tmp/test"目錄的例子。目錄的完全合規(guī)的名稱必須被給出,否則會在當(dāng)前目錄下搜索該目錄。

- 補充和追加內(nèi)容:
> IO和File這部分內(nèi)容可以實現(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決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數(shù)是非強制的,默認(rèn)文件訪問模式為只讀(r)。
  • buffering:如果buffering的值被設(shè)為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設(shè)為大于1的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。
  • 打開文件的模式
    好多就截圖了,可以記住常用就可以(也i挺好記的)


    打開文件的模式
  • 最后結(jié)語:aboutmore

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

  1. 添加總結(jié)思維導(dǎo)圖:【剛開始分享百度腦圖】http://naotu.baidu.com/file/3e40949648c3e50b003adeebe334c063?token=2d1fecb7301358ce
  2. 代碼比較簡單不貼了,后期看上傳值github或者coding吧!

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容