第8章 文件操作1_第1頁
第8章 文件操作1_第2頁
第8章 文件操作1_第3頁
第8章 文件操作1_第4頁
第8章 文件操作1_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python文件操作之文件讀寫FilesoperationUSINGPYTHON

——readorwrite文件的概念01文件的概念文件是存儲在輔助存儲器上的數據集合通常可以長久保存,也稱為磁盤文件。文件的類型python3.X環(huán)境中:文件的默認編碼是utf-8,字符串使用的編碼是Unicode。

(1)基于字符編碼,文件的內容就是字符(2)存取是以字符為單位的,輸入/出字符

流的開始和結束由程序控制。(3)用通用的記事本就可以瀏覽,具有可

讀性,因此,在存取時需要編碼/解

碼,從而花費一定的轉換時間。文本文件(1)二進制文件直接由0,1組成,

沒有統一字符編碼(2)數據按照其實際占用的字節(jié)數存放(3)不需要編/解碼,不存在轉換時間,

但通常無法直接讀懂二進制文件文件的概念如:c:\a\b\1.txt從根目錄開始標識文件所在的完整路徑的方式。同個文件,路徑相同如:b\1.txt從所在位置開始標識,相對于程序所在目錄位置建立參照引用文件所在的路徑。同個文件,路徑不同文件的訪問相對路徑:絕對路徑:多級目錄結構文件的概念python操作文件整體過程與使用Word軟件編寫一份文件的過程相同:打開文件或者新建立一個文件,讀/寫數據,關閉文件。用Python內置的open()函數打開一個文件。

fileobject=open(file_name[,access_mode][,buffering])文件對象文件路徑和名稱文件打開模式<0:默認為-1=0:關閉緩存區(qū)=1:緩存文件的行>1:緩存大小如果要讀寫一個文件,首先要建立一個文件對象,再利用文件對象提供的方法對文件的數據進行讀寫操作。文件的概念75%Conect()函數Connection對象模式描述r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式rb以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式r+打開一個文件用于讀寫。文件指針將會放在文件的開頭rb+以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭w打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件wb以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件w+打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件文件打開模式——打開模式指定了打開文件后處理方式文件的概念模式描述wb+以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,則創(chuàng)建新文件a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,則創(chuàng)建新文件進行寫入ab以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,則創(chuàng)建新文件進行寫入a+打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾,文件打開時采用的是追加模式。如果該文件不存在,則創(chuàng)建新文件用于讀寫ab+以二進制格式打開一個文件用于讀寫追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,則創(chuàng)建新文件用于讀寫小結

文件的類型文本文件二進制文件文件的訪問絕對路徑相對路徑文件的打開模式讀模式寫模式追加模式010203文件的打開與關閉02文件的打開與關閉

fileobject=open(file_name[,access_mode][,buffering])屬性描述closed如果文件已被關閉返回True,否則返回Falsemode返回被打開文件的訪問模式name返回文件的名稱buffer返回當前文件的緩沖區(qū)對象打開文件f1=open(“says.txt”,”r”)等價于:f1=open("E:/python/ptest/filesOpera/files/says.txt","r")#1.在當前目錄下編寫程序filedemo1.py,以讀模式打開與源程序處于同一目錄的says.txt文件例1:設當前目錄:E:\python\ptest\filesOpera\files,下有兩個文本文件:famous.txt和says.txt,一個空文件夾writefiles打開文件#2.在上一級目錄下編寫程序filedemo2.py,以二進制讀模式打開處于源程序下一級目錄的says.txt文件f2=open("files/says.txt","rb")等價于:f2=open("E:/python/ptest/filesOpera/files/says.txt","r")打開文件#3.writefiles下編寫程序filedemo3.py,以寫模式打開上一級目錄的hello.txt文件f3=open("../hello.txt","w")等價于:f3=open("E:/python/ptest/filesOpera/files/hello.txt","w")文件不存在,則創(chuàng)建新文件文件存在,則覆蓋原文件關閉文件文件打開狀態(tài)下才能對文件進行讀或取操作同樣:文件關閉才能將數據寫入磁盤利用python內置函數close()來關閉文件如:fileobject.close()關閉文件75%Connection對象Cursor對象需要注意的是,即使寫了關閉文件的代碼,也無法保證文件一定能夠正常關閉。例如,如果在打開文件后和關閉文件之前發(fā)生了錯誤,導致程序崩潰,這時文件就無法正常關閉。在管理文件對象時推薦使用with關鍵字,可以有效避免這個問題。withopen(filename,mode)asfp:

文件對象操作語句;小結

打開文件

fileobject=open(文件路徑,讀寫模式)關閉文件

fileobject.close()

with語句0102文件的讀寫03讀文件91%51fileobject.read()fileobject.read(n)fileobject.readline(n)fileobject.readlines()格

式read():一次性讀入文件中所有內容。read(n):讀取指定的n個字符;若n大于文件長度,則讀取所有內容。readline(n):若n沒有,則讀取一行,若n有,則讀取一行中的n個字符。Readlines():一次性將文件的所有內容全部讀出,以列表形式返回。

一般再次使用for循環(huán)從readlines()中提取每一行。withopen("files/famous.txt")asfp:print(fp.read())fp=open("files/famous.txt")print(fp.read())fp.close()讀文件例2:讀取當前目錄下files文件夾下的famous.txt中的內容并輸出。讀文件#read(n):讀取從文件頭開始的前5字符withopen("files/famous.txt")asfp:print(fp.read(5))#readline():讀取文件中第一行withopen("files/famous.txt")asfp:print(fp.readline())#readline(n):讀取一行中的前12個字符withopen("files/famous.txt")asfp:print(fp.readline(12))#readlines():讀取文件中所有行withopen("files/famous.txt")asfp:print(fp.readlines())Readlines()返回類型是列表,回車以\n顯示,一般用for循環(huán)輸出每一行內容。寫文件fileobject.write(s)

S是一個待寫入的字符串,寫入多行時可以通過\n控制換行。fileobject.writeLines(s)

S可以是元組,列表,集合類型數據,寫入多行時可以通過\n控制換行格

式寫文件#以追加模式在原有文件后添加內容withopen("files/hello.txt","a")asfp:fp.write(":IamaChinses\n你是美國人:YouareanAmerican")#以寫模式創(chuàng)建文件并寫入內容withopen("files/hello.txt","w")asfp:fp.write("我是中國人")1.write()寫文件2.writelines()#將列表內容寫入courses.txt新文件str=("java程序設計\n","python程序設計\n","數據庫應用")withopen("files/courses.txt","w")asfp:fp.writelines(str)小結

讀文件fileobject.read()fileobject.read(n)fileobject.readline(n)fileobject.readlines()寫文件fileobject.write()fileobject.writelines()0102CSV文件的讀寫04數據組織維度一維數據是最簡單的數據組織類型,有多種存儲格式,常用分隔符分隔(1)空格分隔

如:中國美國日本德國法國英國(2)用逗號分隔如:中國,美國,日本,德國,法國,英國(3)用特殊符號分隔如:中國;美國;日本;德國;法國;英國二維數據,也稱表格數據,由關聯關系數據構成,采用表格方式組織。高維數據由鍵值對類型的數據構成,采用對象方式組織,屬于整合度更好的數據組織方式。高維數據在網絡系統中十分常用,html,xml,json等都是高維數據組織的語法結構。數據組織維度CSV文件CSV(Comma-SeparatedValues),是一種通用的、相對簡單的文件格式,被用戶、商業(yè)和科學廣泛應用。最廣泛的應用是在程序之間轉移表格數據,而這些程序本身是在不兼容的格式上進行操作的。csv文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其他字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列,通常都是純文本文件。建議使用Word或記事本來開啟,在另存為新文檔后用Excel開啟也是方法之一。寫CSV文件格式:csv寫入對象.writerow(數據)例:在當前目錄的files文件夾下創(chuàng)建“csvdemo.csv”文件,寫入課程信息讀CSV文件格式:csv.reader(文件對象變量)例:讀取剛創(chuàng)建的“csvdemo.csv”文件,并將信息打印輸出。小結

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論