python 文件的輸入輸出
一:文件的輸入:
在前面python基礎命令中,我們已經介紹過輸入,在此舉幾個例子解釋一下兩者的區別
raw_input()函數從標準輸入讀取一個行,並返回一個字符串(去掉結尾的換行符):
input()函數和 raw_input() 函數基本類似,但是 input 可以接收一個Python表達式作為輸入,並將運算結果返回。
兩者的差異點在於input只能接受一個正確的python表達式
In [8]: a = input() ddd --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-8-9b8a430d8199> in <module>() ----> 1 a = input() <string> in <module>() NameError: name ‘ddd‘ is not defined In [9]: b = raw_input() dds In [10]:
二:文件處理的具體方法:
open 函數
你必須先用Python內置的open()函數打開一個文件,創建一個file對象,相關的方法才可以調用它進行讀寫。
新建文件haha,和執行操作的在同一個目錄下
a = open("haha","r") #打開haha文件並且只給他read權限 print a.read()
輸出:ewfevcsd
模式 | 描述 |
---|---|
r | 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。 |
rb | 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。 |
r+ | 以讀寫的方式打開,如果文件不存在,直接報錯,當寫入內容的時候,文件從指針指向的地方繼續寫入 |
rb+ | 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。 |
w | 打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
wb | 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
w+ | 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。註:當我們寫一個東西時,指針會停留在寫的東西的最後一個字符,所以,當read時,即什麽也讀不到 |
wb+ | 以二進制格式打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
a | 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。 |
ab | 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。 |
a+ | 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。 |
ab+ | 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。 |
註:以上模式在使用的時候一定要加"",其次,在read的時候,一定要註意指針的位置。
read()方法
read()方法從一個打開的文件中讀取一個字符串。需要重點註意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
a = open("haha","r") print a.read()
a = open("haha","r") a = a.read(7) ####resd(數字表示從指針初始位置到你所加數字的位置) print a
haha sfesdsghbrtfhbred
文件為輸出:
sfesdsg
文件定位seek函數:修改指針位置
file.tell() #查看文件的指針位置
file.seek(偏移量,選項)
偏移量: >0.向右偏移量 <0 向左偏移
選項: 0:代表指向文件開始 1:代表指向文件當前 2:代表指向文件最後
a = open("haha","w+") a.write("w+w+") print a.tell() a.seek(0,0) print a.read()
輸出:
4 w+w+
在加seek前 指針停留在最後,所以什麽也讀不出
flash()方法
flush() 方法是用來刷新緩沖區的,即將緩沖區中的數據立刻寫入文件,同時清空緩沖區,不需要是被動的等待輸出緩沖區寫入。
一般情況下,文件關閉後會自動刷新緩沖區,但有時你需要在關閉前刷新它,這時就可以使用 flush() 方法。
close,文件的關閉
file.close() #關閉文件 file.closed #查看文件是否關閉
文件的重命名和刪除
前提:倒入os模塊
import os os.rename("haha","pipi")
然後你看看文件名是不是就改了呢
remove()方法
你可以用remove()方法刪除文件,需要提供要刪除的文件名作為參數。
語法:
import os os.remove("ehhe")
mkdir()方法
import os os.mkdir("yaoyao")
註:如果沒有加絕對路徑時,新建的目錄和執行此語法的文件地址同級
chdir()方法:類似於linux的mv
可以用chdir()方法來改變當前的目錄。chdir()方法需要的一個參數是你想設成當前目錄的目錄名稱。
語法:
import os os.mkdir("/home/example") os.chdir("/home/example")
還有好多關於文件處理的方法,具體會整理在os模塊
File對象的屬性
一個文件被打開後,你有一個file對象,你可以得到有關該文件的各種信息。
a = open("haha","w+") a.write("w+w+") a.seek(0,0) print "文件名",a.name print "文件是否關閉",a.closed print "文件訪問模式", a.mode
輸出:
文件名 haha 文件是否關閉 False 文件訪問模式 w+
本文出自 “12462896” 博客,請務必保留此出處http://12472896.blog.51cto.com/12462896/1965027
python 文件的輸入輸出