1. 程式人生 > >python 文件的輸入輸出

python 文件的輸入輸出

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 文件的輸入輸出