




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
主講教師:姓名目錄7.1文件概述7.2文件的操作7.2.1文件的打開與關閉7.2.2文件的讀寫7.2.3文件內容定位7.2.4文件對象常用屬性7.2.5上下文管理語句with7.2.6CSV文件讀寫7.3文件夾操作7.4經典案例分析7.1文件概述
7.1.1文件文件是一組相關數據的集合和抽象。它可以長期保存、允許重復使用和反復修改。7.1文件概述
7.1.1文件文件是一組相關數據的集合和抽象。它可以長期保存、允許重復使用和反復修改。通過文件的屬性可以區別不同的文件。一般情況下按文件名訪問文件。7.1.2文件類型根據數據的組織形式,可以將文件分為文本文件和二進制文件兩類。1、文本文件文本文件只包含基本文本字符。Windows平臺中,擴展名.txt、.log和.ini的文件都屬于文本文件。文本文件一般由單一特定編碼的字符組成,如utf-8、GBK編碼等;在讀取和查看時需要使用正確的編碼方式進行解碼。圖:文本文件“個人信息.txt”編碼格式“utf-8”7.1.2文件類型根據數據的組織形式,可以將文件分為文本文件和二進制文件兩類。(2)二進制文件二進制文件是以字節串(bytes)進行存儲的;直接按數據的二進制編碼組織數據,沒有統一字符編碼;常見的圖形圖像文件、音頻視頻文件、可執行文件、資源文件、數據庫文件、各類Office文檔等。圖:word文件“實驗10.docx”7.2文件的操作
7.2.1文件的打開與關閉1、文件打開與創建(1)open()函數語法格式:open(filename,mode='r',encoding=None)功能和參數含義如下:函數的功能是可以指定模式創建或打開某一文件并創建文件對象。參數filename指定要創建或打開的文件名稱;參數mode是可選參數,表示打開文件后的處理方式;具體模式如表7.1所示。參數encoding指定對文本進行編碼和解碼的方式,只適用于文本模式,如GBK、utf-8、CP936等。7.2.1文件的打開與關閉表7.1文件打開模式模式說明r讀模式,默認模式可省略;如果文件不存在則拋出異常FileNotFoundErrorw寫模式,如果文件已存在先清空原有內容x寫模式創建新文件,如果文件已存在則拋出異常FileExistsErrora追加模式,不覆蓋文件中原有內容;如果文件不存在創建新文件進行寫入b二進制模式,可與其他模式組合使用t文本模式,默認模式可省略+可與其他模式組合使用,在原有功能基礎上增加讀/寫模式7.2.1文件的打開與關閉(2)創建或打開文件,并將其與文件對象file進行關聯語法格式:file=open()例如:將文本文件file1.txt與文件對象f1進行關聯。相對路徑表示:>>>f1=open('file1.txt','w',encoding='utf-8')絕對路徑表示:>>>f1=open('D:\\Python38\\file1.txt','w',encoding='utf-8')或>>>f1=open(r'D:\Python38\file1.txt','w',encoding='utf-8')>>>f1=open(R'D:\Python38\file1.txt','w',encoding='utf-8')7.2.1文件的打開與關閉2、關閉文件語法格式:file.close()功能含義:命令的功能是把內存的內容寫入文件,同時關閉文件。例如:>>>f3=open('file3.txt','w+',encoding='utf-8')>>>f3<_io.TextIOWrappername='file3.txt'mode='w+'encoding='utf-8'>>>>f3.close()7.2.1文件的打開與關閉2、關閉文件語法格式:file.close()>>>print("文件是否關閉:",f3.closed)#屬性closed判斷文件是否關閉文件是否關閉:True>>>f3<_io.TextIOWrappername='file3.txt'mode='w+'encoding='utf-8'>文件對象f3關聯的文本文件file3.txt已經關閉,但文件對象f3依然與file3.txt相關聯,但是不允許對關閉的文件執行任何讀寫操作,若對關閉的文件進行讀或寫操作時系統會報錯。7.2.2文件的讀寫1、寫操作(1)write()方法語法格式:file.write(string)功能含義:功能是在文件當前插入點位置插入文本數據或二進制數據塊的字符串,將字符串string原樣寫入并覆蓋文件內容,返回寫入的字符長度。7.2.2文件的讀寫1、寫操作(1)write()方法語法格式:file.write(string)例如:>>>f1=open('file1.txt','w',encoding='utf-8')>>>f1.write('Python')6>>>f1.write('語言程序設計教程\n')9>>>f1.flush()>>>f1.close()7.2.2文件的讀寫1、寫操作(2)writelines()方法語法格式:file.writelines(sequence)功能含義:功能是序列sequence原樣寫入文件當前插入點位置,可以一次性寫入多個字符串,且不添加換行符。如果有需要要人為加上換行符'\n'。需要注意的是序列的元素必須是字符串。7.2.2文件的讀寫1、寫操作(2)writelines()方法語法格式:file.writelines(sequence)例如:>>>f1=open('file1.txt','a',encoding='utf-8')>>>f1.writelines(['第一章','','Python概述','\n'])>>>f1.writelines([1,2,3])Traceback(mostrecentcalllast):File"<pyshell#15>",line1,in<module>f1.writelines([1,2,3])TypeError:write()argumentmustbestr,notint7.2.2文件的讀寫1、寫操作(2)writelines()方法注意:writelines()方法的參數除了列表之外,也可以是集合、元組,甚至是字典,但是元素一定是字符串才可以。其中集合與字典做參數時,寫入文件的內容形式和預期的會有不同。例如:>>>f1.writelines(('第二章','基本數據類型、運算符與表達式','\n','第三章程序控制結構\n'))>>>f1.close()7.2.2文件的讀寫1、寫操作(3)print()函數語法格式:print(value1,value2,...,sep='',end='\n',file=sys.stdout)功能和參數含義:函數的功能是輸出信息到標準控制臺或指定文件。參數value1,value2,…需要輸出的內容(可以有多個);參數sep參數用于指定數據之間的分隔符,默認為空格;參數end用于指定輸出完數據之后再輸出什么字符;參數file用于指定輸出位置,默認為標準控制臺,也可以重定向輸出到文件。7.2.2文件的讀寫1、寫操作(3)print()函數語法格式:print(value1,value2,...,sep='',end='\n',file=sys.stdout)例如:>>>f1=open('file1.txt','a',encoding='utf-8')>>>print('第四章組合序列結構',file=f1)>>>f1.close()7.2.2文件的讀寫2、讀操作(1)read()方法語法格式:file.read([size])功能和參數說明:功能是從文本文件指針當前位置讀取size個字符(Python3.x)的內容,以一個字符串作為結果返回;或從二進制文件中讀取size指定數量的字節并返回。如果省略size則表示從當前位置讀取文件所有內容。7.2.2文件的讀寫2、讀操作(1)read()方法語法格式:file.read([size])例如:以讀模式打開文本文件“file1.txt”進行讀取>>>f1=open('file1.txt','r',encoding='utf-8')>>>f1.read(8)'Python語言'>>>f1.read(2)'程序'7.2.2文件的讀寫2、讀操作(1)read()方法語法格式:file.read([size])>>>f1.read()'設計教程\n第一章Python概述\n第二章基本數據類型、運算符與表達式\n第三章程序控制結構\n第四章組合序列結構\n'>>>f1.read()''>>>f1.close()7.2.2文件的讀寫2、讀操作(2)readline()方法語法格式:file.readline()功能說明:讀出文件中當前行,以一個字符串的形式作為結果返回。例如:依次讀取“file1.txt”每一行。>>>f1=open('file1.txt','r',encoding='utf-8')>>>f1.readline()'第一章Python概述\n'>>>f1.readline()'第二章基本數據類型、運算符與表達式\n'7.2.2文件的讀寫2、讀操作(2)readline()方法語法格式:file.readline()>>>f1.readline()'第三章程序控制結構\n'>>>f1.readline()'第四章組合序列結構\n'>>>f1.readline()''>>>f1.close()7.2.2文件的讀寫【例7-1】編寫程序,用循環語句讀取并顯示文本文件file1.txt,統計文件的行數和字符數。123456789101112#讀取并顯示文件file1.txt,統計文件的行數和字符數s1=s2=0f1=open('file1.txt','r',encoding='utf-8')ss=f1.readline()whiless!='':print(ss,end='')s1=s1+1s2=s2+len(ss)ss=f1.readline()f1.close()print('文件共'+str(s1)+'行')print('文件共'+str(s2)+'字符')7.2.2文件的讀寫【例7-1】編寫程序,用循環語句讀取并顯示文本文件file1.txt,統計文件的行數和字符數。運行結果:7.2.2文件的讀寫【例7-2】按行顯示file1.txt的內容。12345#按行顯示file1.txt的內容f1=open('file1.txt','r',encoding='utf-8')forlineinf1:print(line,end='')f1.close()7.2.2文件的讀寫【例7-2】按行顯示file1.txt的內容。運行結果:7.2.2文件的讀寫2、讀操作(3)readlines()方法語法格式:file.readlines([sizeint])功能和參數說明:讀取所有行并返回列表,每行文本以一個字符串的形式作為列表中的一個元素。若給定sizeint>0,返回總和大約為sizeint字節的行,實際讀取值可能比sizeint較大,因為需要填充緩沖區。7.2.2文件的讀寫2、讀操作(3)readlines()方法語法格式:file.readlines([sizeint])例如:>>>f1=open('file1.txt','r',encoding='utf-8')>>>f1.readlines()['Python語言程序設計教程\n','第一章Python概述\n','第二章基本數據類型、運算符與表達式\n','第三章程序控制結構\n','第四章組合序列結構\n']>>>f1.close()7.2.3文件內容定位1、tell()方法語法格式:file.tell()功能說明:返回文件指針的當前位置。例如:讀模式打開文本文件“text2.txt”,讀取字符。>>>f2=open('file2.txt','r')>>>f2.tell()0>>>f2.read(10)'Helloworl'>>>f2.tell()107.2.3文件內容定位1、tell()方法語法格式:file.tell()>>>f2.read(10)#文件剩余部分不足10個字符按實際輸'd!\n'>>>f2.tell()14>>>f2.close()7.2.3文件內容定位2、seek()方法語法格式:file.seek(offset[,whence])參數說明:把文件指針移動到新的字節位置。seek函數可以接收偏移量offset和選項whence作為參數,返回執行seek()后的位置。offset表示相對于whence的位置。當whence=0時,將文件指針從文件頭部轉移到偏移量offset指定的字符處;當whence=1時,將文件指針從文件的當前位置往后轉移偏移量offset指定的字符數處;當whence=2時,將文件指針從文件尾部向后移動偏移量offset指定的字符數。whence默認值為0,file.seek(0)表示文件指針移動到文件頭位置。7.2.3文件內容定位2、seek()方法語法格式:file.seek(offset[,whence])例如:>>>f1=open('file1.txt','r',encoding='utf-8')>>>f1.readline()'Python語言程序設計教程\n'>>>f1.readline()'第一章Python概述\n'>>>f1.tell()56>>>f1.seek(0)07.2.3文件內容定位2、seek()方法語法格式:file.seek(offset[,whence])>>>f1.readline()'Python語言程序設計教程\n'>>>f1.seek(1,0)1>>>f1.tell()1>>>f1.readline()'ython語言程序設計教程\n'7.2.3文件內容定位2、seek()方法語法格式:file.seek(offset[,whence])>>>f1.tell()32>>>f1.seek(0,1)32>>>f1.seek(1,1)Traceback(mostrecentcalllast):File"<pyshell#75>",line1,in<module>f1.seek(1,1)io.UnsupportedOperation:can'tdononzerocur-relativeseeks在文本文件中,只允許從文件頭開始計算相對位置,從文件當前位置或尾計算時就會引發異常。7.2.3文件內容定位【例7-3】在file3.txt中寫入如下詩句,在第一句后面添加一個換行。Wheneveryouneedme,I’llbehere.Wheneveryouareintrouble,Imalwaysnear.12345678910#在file3.txt中寫入詩句,修改添加一個換行f3=open('file3.txt','w+')s1='Wheneveryouneedme,I\'llbehere.'s2='Wheneveryouareintrouble,Imalwaysnear.'f3.write(s1)f3.write(s2)f3.flush()f3.seek(0)print('修改前')print(f3.readline(),end='')111213141516171819n=len(s1)f3.seek(n)f3.write('\n')f3.flush()print('\n修改后')f3.seek(0)forlineinf3:print(line,end='')f3.close()7.2.3文件內容定位【例7-3】在file3.txt中寫入如下詩句,在第一句后面添加一個換行。Wheneveryouneedme,I’llbehere.Wheneveryouareintrouble,Imalwaysnear.運行結果:7.2.4文件對象常用屬性表7.2文件對象常用屬性屬性說明name返回文件名稱mode返回文件打開模式closed判斷文件是否關閉,關閉Truebuffer返回當前文件的緩沖區對象fileno返回文件號7.2.4文件對象常用屬性例如>>>f1=open('file1.txt','r',encoding='utf-8')>>>print("文件名為:",)文件名為:file1.txt>>>print("文件打開模式:",f1.mode)文件打開模式:r>>>print("文件是否關閉:",f1.closed)文件是否關閉:False>>>print("文件緩沖區對象:",f1.buffer)文件緩沖區對象:<_io.BufferedReadername='file1.txt'>>>>f1.close()>>>print("文件是否關閉:",f1.closed)文件是否關閉:True7.2.5上下文管理語句with語法格式:withopen(filename,mode,encoding)asfile:
代碼塊
#這里寫通過文件對象讀寫文件內容的語句功能和參數說明:該語句可以保證文件被正確關閉,在代碼塊執行完畢后自動還原進入該代碼塊時的上下文。參數其中filename,mode,encoding和file參數的含義與open()函數參數相同。7.2.5上下文管理語句with【例7-4】編寫程序修改xj.txt的信息內容,在學號前面加上“學號:”,在姓名前面加上“姓名:”,然后用循環語句在屏幕上顯示xj.txt修改后個人全部信息。文本文件xj的內容如圖7-5所示。7.2.5上下文管理語句with【例7-4】編寫程序修改xj.txt的信息內容,在學號前面加上“學號:”,在姓名前面加上“姓名:”,然后用循環語句在屏幕上顯示xj.txt修改后個人全部信息。文本文件xj的內容如圖7-5所示。1234567891011#修改xj.txt的信息內容withopen('xj.txt','r+')asf:l1=['學號:']+list(f.readline())l2=['姓名:']+list(f.readline())f.seek(0)f.writelines(l1)f.writelines(l2)f.flush()f.seek(0)forlineinf:print(line,end='')7.2.5上下文管理語句with【例7-4】編寫程序修改xj.txt的信息內容,在學號前面加上“學號:”,在姓名前面加上“姓名:”,然后用循環語句在屏幕上顯示xj.txt修改后個人全部信息。文本文件xj的內容如圖7-5所示。運行結果:7.2.5上下文管理語句with上下文管理語句with還可以同時打開多個文件進行讀寫操作。with語句也可以使用嵌套結構12withopen('test.txt','r')asold,open('test_new.txt','w')asnew:new.write(old.read())123withopen('test.txt','r')asold:withopen('test_new.txt','w')asnew:new.write(old.read())7.2.6CSV文件讀寫CSV文件可以理解為用帶逗號分隔的純文本形式存儲表格數據的文件。文件由記錄組成,一行對應一條記錄,每行開頭不留空格,每條記錄被英文半角分隔符分割為多個字段。CSV文件的分隔符不限定為逗號,可以是分號、制表符等。7.2.6CSV文件讀寫1、寫入CSV文件(1)創建writer對象語法格式:writer=csv.writer(csvfile,dialect='excel',newline=None)參數說明:csvfile支持迭代的對象,并且每次調用next方法的返回值是字符串,通常的文件對象或者列表對象都是適用的。dialect編碼風格,默認為excel方式,也就是逗號分隔。另外CSV模塊也支持excel-tab風格,也就是用制表符tab分隔等。參數newline是用來控制一行的結束字符。可以是None,'','\n','\r','\r\n'等。7.2.6CSV文件讀寫1、寫入CSV文件(1)創建writer對象語法格式:writer=csv.writer(csvfile,dialect='excel',newline=None)例如:打開“stu.csv”,建立了writer對象wr。>>>importcsv>>>f_csv=open("stu.csv",'w')>>>wr=csv.writer(f_csv)>>>f_csv.close()7.2.6CSV文件讀寫1、寫入CSV文件(2)writerow()方法語法格式為:writer.writerow(list)功能說明:將用列表存儲的一行數據寫入文件。7.2.6CSV文件讀寫1、寫入CSV文件(2)writerow()方法例如:向文件中添加首行內容“學號”,“姓名”,“性別”和“年齡”,然后追加兩條記錄,“20010801”,“張蘭”,“女”,“17”和“20010802”,“劉毅強”,“男”,“17”。>>>withopen("stu.csv",'w',newline='')asf_csv: wr=csv.writer(f_csv)#創建witer對象 wr.writerow(['學號','姓名','性別','年齡']) wr.writerow(['20010801','張蘭','女','17']) wr.writerow(['20010802','劉毅強','男','17'])
13187.2.6CSV文件讀寫1、寫入CSV文件(3)writerows()方法語法格式:writer.writerows(sequence)功能說明:是將序列sequence中的每一個元素作為一行寫入CSV文件。例如:下列命令利用writerows()方法一次寫入兩行記錄。>>>importcsv>>>withopen("stu.csv",'a+',newline='')asf_csv: wr=csv.writer(f_csv) wr.writerows([['20010803','王小明','男','16'],('20010804','劉欣欣','女','18')])7.2.6CSV文件讀寫2、讀取CSV文件(1)創建reader對象語法格式:reader=csv.reader(csvfile,dialect='excel')功能和參數說明:創建reader對象,以列表的形式輸出每一行。csvfile需要支持迭代的對象,并且每次調用next方法的返回值是字符串,通常的文件對象,或者列表對象都是適用的。dialect編碼風格,默認為excel方式,也就是逗號分隔。另外CSV模塊也支持excel-tab風格,也就是用制表符tab分隔等。7.2.6CSV文件讀寫2、讀取CSV文件(1)創建reader對象語法格式:reader=csv.reader(csvfile,dialect='excel')例如:通過迭代遍歷reader對象來遍歷文件中的每一行。>>>importcsv>>>withopen("stu.csv",'r')asf_csv: reader=csv.reader(f_csv) forrowinreader: print(row)
運行結果:['學號','姓名','性別','年齡']['20010801','張蘭','女','17']['20010802','劉毅強','男','17']['20010803','王小明','男','16']['20010804','劉欣欣','女','18']7.3文件夾操作目錄是用來組織和管理一組相關的文件和文件夾。目錄又可稱為文件夾,可以包含文件,也可以包含其他目錄。文件的保存位置稱為路徑。7.3.1絕對路徑與相對路徑1、絕對路徑絕對路徑是指從文件所在驅動器名稱即“盤符”開始描述文件的保存位置。例如:C:\Exam\88772\編程題\1\py_source_file1.py在Python程序中,文件的路徑可以使用字符串來表示。
例如:"C:\\Exam\\88772\\編程題\\1\\py_source_file1.py"
或者
r"C:\Exam\88772\編程題\1\py_source_file1.py"R"C:\Exam\88772\編程題\1\py_source_file1.py"7.3.1絕對路徑與相對路徑2、相對路徑每個運行的程序都有一個當前工作的目錄,稱為當前目錄。相對路徑是指從當前工作目錄開始描述文件的保存位置,即從當前路徑出發表示一個文件。若當前目錄為C:\Exam\88772,則py_source_file1.py文件的相對路徑就是“編程題\1\py_source_file1.py”。7.3.2目錄操作表7.3常用目錄(文件夾)操作方法函數功能說明os.getewd()返回當前工作目錄os.listdir(path)返回path目錄下的文件和目錄列表os.chdir(path)改變當前工作目錄,path提供設置成當前目錄的目錄名稱的參數。os.rmdir(path)刪除path指定的空目錄,如果目錄非空則拋出一個OSError異常os.mkdir(path[,mode])以數字的mode創建一個名為path的文件夾。默認的mode是0777(八進制)path提供一個包含了要創建的目錄名的參數os.rename(scr,dst)重命名文件或目錄,scr參數為文件或目錄、dst參數為新文件名或新目錄名,可以實現文件的移動,若目標文件已存在則拋出異常;不能跨越磁盤或分區進行操作os.replace(old,new)重命名文件或目錄,若目標文件已存在則直接覆蓋;不能跨越磁盤或分區操作7.3.3文件操作表7.4常用文件操作方法方法功能說明os.rename(scr,dst)重命名文件或目錄,scr參數為文件或目錄、dst參數新文件名或新目錄名,可以實現文件的移動,若目標文件已存在則拋出異常;不能跨越磁盤或分區操作os.replace(old,new)重命名文件或目錄,若目標文件已存在則直接覆蓋;不能跨越磁盤或分區操作os.remove([path]file_name)刪除路徑為path的文件file_name。如果只有路徑缺失文件名將拋出異常;刪除指定的文件,要求用戶擁有刪除文件的權限,并且文件沒有只讀或其他特殊屬性7.4經典案例分析【例7-5】以編碼格式utf-8寫模式創建文件f1.txt,創建文件對象f,屏幕上輸出文件名稱再關閉文件f1.txt,并判斷文件是否關閉。12345678#編碼格式utf-8創建文件f1.txt,輸出文件名,關閉文件、判斷文件是否關閉f=open('f1.txt','w',encoding='utf-8')print("文件名為:",)f.close()iff.closed:print("文件已關閉")else:print("文件未關閉")7.4經典案例分析【例7-5】以編碼格式utf-8寫模式創建文件f1.txt,創建文件對象f,屏幕上輸出文件名稱再關閉文件f1.txt,并判斷文件是否關閉。運行結果:7.4經典案例分析【例7-6】將三個字符串寫入文本文件sample.txt,然后再讀取并輸出。1234567#字符串寫入文本文件sample.txt,然后再讀取并輸出withopen('sample.txt','w')asfp:fp.write("Helloworld!\n")fp.write("HelloPython!\n")fp.write("Helloeveryone!")withopen('sample.txt')asfp:print(fp.read())7.4經典案例分析【例7-6】將三個字符串寫入文本文件sample.txt,然后再讀取并輸出。運行結果:7.4經典案例分析【例7-7】遍歷gs.txt所有內容且在屏幕上輸出,統計輸出字符個數。(gs.txt編碼格式為utf-8)【分析1】直接遍歷文件對象1234567#遍歷顯示,統計古詩gs.txt字符個數s=0withopen('gs.txt','r',encoding='utf-8')asf:forlineinf:print(line,end='')s=s+len(line)print('字符個數為',s)7.4經典案例分析【例7-7】遍歷gs.txt所有內容且在屏幕上輸出,統計輸出字符個數。(gs.txt編碼格式為utf-8)【分析2】讀取文件對象按行生成列表再遍歷列表12345678#遍歷顯示,統計古詩gs.txt字符個數s=0withopen('gs.txt','r',encoding='utf-8')asf:list_f=f.readlines()forlineinlist_f:print(line,end='')s=s+len(line)print('字符個數為',s)7.4經典案例分析【例7-7】遍歷gs.txt所有內容且在屏幕上輸出,統計輸出字符個數。(gs.txt編碼格式為utf-8)【分析3】計算文本文件行數,循環文件行數次來讀取文件每一行12345678910#遍歷顯示,統計古詩gs.txt字符個數s=0withopen('gs.txt','r',encoding='utf-8')asf:n=len(f.readlines())f.seek(0)foriinrange(1,n+1):line=f.readline()print(line,end='')s=s+len(line)print('字符個數為',s)7.4經典案例分析【例7-7】遍歷gs.txt所有內容且在屏幕上輸出,統計輸出字符個數。(gs.txt編碼格式為utf-8)運行結果:7.4經典案例分析【例7-8】統計文本文件sample.txt中最長行的長度,顯示該行的內容。123456789#統計sample.txt中最長行的長度withopen('sample.txt')asfp:result={'最長長度':0,'最長行內容':''}forlineinfp:t=len(line)ift>result['最長長度']:result['最長長度']=len(line)result['最長行內容']=lineprint(result)7.4經典案例分析【例7-8】統計文本文件sample.txt中最長行的長度,顯示該行的內容。運行結果:7.4經典案例分析【例7-9】將一個文本文件的內容轉化為另一個編碼格式的文本文件。12345678910111213#轉化文件編碼格式deffileCopy(old,oldEncoding,new,newEncoding):withopen(old,'r',encoding=oldEncoding)asoldfp,open(new,'w',encoding=newEncoding)asnewfp:newfp.write(oldfp.read())print('已生成文件{},編碼格式為{}'.format(new,mod2))
name1=input('輸入需要轉化的文件名:')mod1=input('輸入文件的編碼格式:')name2=input('輸入轉化后的文件名:')mod2=input('輸入文件新的的編碼格式:')fileCopy(name1,mod1,name2,mod2)7.4經典案例分析【例7-9】將一個文本文件中內容轉化為另一個編碼格式的文本文件。運行結果:7.4經典案例分析【例7-10】before.txt文件中存放的是一些整數組成的字符串,其中包含空白字符和逗號。讀取before.txt文件中所有整數,按升序排序后將結果以字符串形式寫入文本文件after.txt中。【分析】1、讀取before.txt所有行,刪除每行兩側的空白字符,合并所有行,分隔得到所有數字字符串;2、按數值生成列表,排序,按字符連接成字符串,寫入after.txt。12345678910111213141516171819#before.txt文件中所有整數,按升序排序后寫入文本文件after.txtprint('before文件中的內容是:')withopen('before.txt')asf:forlineinf:print(line)withopen('before.txt','r')asfp:data=fp.readlines()data=[line.strip()forlineindata]data=','.join(data)data=data.split(',')data=[int(item)foritemindata]data.sort()data=','.join(map(str,data))withopen('after.txt','w')asfp:fp.write(data)print('after文件中的內容是:')withopen('after.txt')asf:forlineinf:print(line)7.4經典案例分析【例7-10】before.txt文件中存放的是一些整數組成的字符串,其中包含空白字符和逗號。讀取before.txt文件中所有整數,按升序排序后將結果以字符串形式寫入文本文件after.txt中。運行結果:7.4經典案例分析【例7-11】對Doctorlist.csv文件的讀寫操作。123456789101112#對Doctorlist.csv文件的讀寫操作importcsvname
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年黃山健康職業學院輔導員考試真題
- 舞蹈培訓少兒節目課件
- 總承包單位質量安全管理行為檢查表
- 消防單個項目培訓課件
- 日常保潔培訓
- 財務成本管理培訓課件
- 豬疫苗銷售技巧培訓
- 網絡營銷與直播電商專業教學標準(高等職業教育專科)2025修訂
- 《智能建筑自動化監控系統》課件
- 怎做培訓長護險
- 2025年重慶市中考道德與法治試卷真題(含標準答案)
- 2025年北京昌平區東小口鎮城市協管員招聘題庫帶答案分析
- 婦女兒童之家管理制度
- 江蘇省揚州市江都區城區2025屆八年級物理第二學期期末聯考試題含解析
- 【課件】2024年全國I、II卷新高考讀后續寫+課件-2025屆高三英語一輪復習
- 醫保村醫政策培訓
- 郵政社招筆試考試歷年真題及答案
- 《結締組織病本》課件
- 2025屆四川省綿陽高三下學期英語模擬檢測試卷(一模)含答案
- 2025-2030中國煤制油行業市場深度調研及發展趨勢與投資前景預測研究報告
- 四川阿壩州公開招聘社區工作者考試全真模擬測試帶答案2024年
評論
0/150
提交評論