




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Python文件和數(shù)據(jù)格式化技巧與實踐匯報人:XX2024-01-12文件基本操作與讀寫數(shù)據(jù)格式化之字符串操作數(shù)據(jù)格式化之列表、元組和字典操作數(shù)據(jù)格式化之JSON處理數(shù)據(jù)格式化之XML處理數(shù)據(jù)格式化之CSV處理數(shù)據(jù)格式化之Excel處理文件基本操作與讀寫01使用`open()`函數(shù)打開文件,可以指定文件名、打開模式(如讀取、寫入、追加等)和編碼方式。打開文件關閉文件上下文管理使用`close()`方法關閉文件,釋放資源。使用`with`語句可以自動管理文件的打開和關閉,確保文件在使用完畢后被正確關閉。030201打開與關閉文件03指定讀取內(nèi)容使用`read(size)`方法指定讀取的字節(jié)數(shù),或使用`readline()`方法讀取一行內(nèi)容。01讀取整個文件使用`read()`方法一次性讀取整個文件內(nèi)容。02逐行讀取使用`readlines()`方法或循環(huán)遍歷文件對象逐行讀取文件內(nèi)容。讀取文件內(nèi)容寫入整個字符串使用`write()`方法將字符串寫入文件。寫入多行內(nèi)容使用`writelines()`方法將字符串列表寫入文件,每個字符串代表一行內(nèi)容。追加內(nèi)容在打開文件時使用追加模式(`'a'`),可以將內(nèi)容追加到文件末尾,而不是覆蓋原有內(nèi)容。寫入文件內(nèi)容030201使用`os.getcwd()`方法獲取當前工作目錄的路徑。獲取當前工作目錄使用`os.path.join()`方法拼接路徑,可以自動處理不同操作系統(tǒng)的路徑分隔符。拼接路徑使用`os.path.abspath()`方法獲取文件的絕對路徑。獲取文件絕對路徑使用`os.path.split()`方法分割路徑,返回路徑和文件名組成的元組。分割路徑文件路徑處理數(shù)據(jù)格式化之字符串操作02字符串拼接與分割字符串拼接使用`+`運算符或`join()`方法將多個字符串連接成一個字符串。例如,通過`str1+str2`或`''.join([str1,str2])`實現(xiàn)字符串拼接。字符串分割使用`split()`方法將字符串按照指定分隔符拆分成多個子串。例如,通過`'string.split(separator)'`將字符串按照`separator`分割成列表。字符串替換使用`replace()`方法將字符串中的某個子串替換為另一個子串。例如,通過`'string.replace(old,new)'`將`string`中的`old`子串替換為`new`子串。字符串查找使用`find()`或`index()`方法在字符串中查找子串的位置。例如,通過`'string.find(substring)'`或`'string.index(substring)'`查找`substring`在`string`中的位置。字符串替換與查找使用`%`運算符進行字符串格式化。例如,`'Hello,%s!'%name`將`name`的值插入到字符串中。舊式格式化使用`format()`方法或f-string進行字符串格式化。例如,`'Hello,{name}!'.format(name=name)`或`f'Hello,{name}!'`。新式格式化字符串格式化編碼與解碼問題處理解碼:將字節(jié)序列轉換回原始字符串。例如,使用`decode()`方法將UTF-8格式的字節(jié)序列解碼為字符串:`'bytes.decode('utf-8')'`。編碼:將字符串轉換為字節(jié)序列,以便在網(wǎng)絡上傳輸或保存到文件中。例如,使用`encode()`方法將字符串編碼為UTF-8格式:`'string.encode('utf-8')'`。在處理編碼與解碼問題時,需要注意選擇合適的字符集(如UTF-8、GBK等),以避免出現(xiàn)亂碼或數(shù)據(jù)丟失等問題。同時,對于涉及文件讀寫或網(wǎng)絡通信等場景,還需要考慮數(shù)據(jù)的傳輸格式和協(xié)議要求。數(shù)據(jù)格式化之列表、元組和字典操作03列表創(chuàng)建使用方括號`[]`或`list()`函數(shù)創(chuàng)建列表,如`my_list=[1,2,3]`或`my_list=list((1,2,3))`。列表修改通過索引直接修改元素,如`my_list[0]=0`將列表第一個元素修改為0。列表遍歷使用`for`循環(huán)遍歷列表元素,如`foriteminmy_list:print(item)`。列表創(chuàng)建、修改和遍歷元組修改元組是不可變序列,不能直接修改元素。但可以通過切片或轉換成列表進行修改后,再轉回元組。元組遍歷使用`for`循環(huán)遍歷元組元素,如`foriteminmy_tuple:print(item)`。元組創(chuàng)建使用圓括號`()`或`tuple()`函數(shù)創(chuàng)建元組,如`my_tuple=(1,2,3)`或`my_tuple=tuple([1,2,3])`。元組創(chuàng)建、修改和遍歷字典創(chuàng)建、修改和遍歷使用大括號`{}`或`dict()`函數(shù)創(chuàng)建字典,如`my_dict={'a':1,'b':2}`或`my_dict=dict(a=1,b=2)`。字典修改通過鍵直接修改值,如`my_dict['a']=0`將鍵為'a'的值修改為0。字典遍歷使用`for`循環(huán)遍歷字典的鍵或值,如`forkeyinmy_dict:print(key)`或`forvalueinmy_dict.values():print(value)`。字典創(chuàng)建使用內(nèi)置函數(shù)實現(xiàn)不同類型數(shù)據(jù)之間的轉換,如`list()`、`tuple()`和`dict()`函數(shù)可將其他類型數(shù)據(jù)轉換為列表、元組和字典。數(shù)據(jù)類型轉換對于列表和元組,可使用`sorted()`函數(shù)進行排序,返回新的已排序的列表或元組;對于字典,可使用`sorted()`函數(shù)對鍵或值進行排序,返回排序后的鍵或值的列表。數(shù)據(jù)排序數(shù)據(jù)類型轉換與排序數(shù)據(jù)格式化之JSON處理04JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫。JSON采用鍵值對的方式來組織數(shù)據(jù),數(shù)據(jù)格式包括對象、數(shù)組、字符串、數(shù)字、布爾值和null。JSON具有跨平臺、跨語言的特點,被廣泛應用于Web開發(fā)和API接口數(shù)據(jù)傳輸。010203JSON數(shù)據(jù)格式簡介將Python對象轉換為JSON格式030201使用Python內(nèi)置的`json`模塊,通過`json.dumps()`方法將Python對象轉換為JSON格式的字符串。示例:`importjson;data={'name':'John','age':30};json_str=json.dumps(data)`可以使用`indent`參數(shù)指定縮進空格數(shù),使輸出的JSON字符串更易于閱讀。將JSON格式轉換為Python對象使用Python內(nèi)置的`json`模塊,通過`json.loads()`方法將JSON格式的字符串轉換為Python對象。02示例:`importjson;json_str='{"name":"John","age":30}';data=json.loads(json_str)`03轉換后的Python對象類型與JSON數(shù)據(jù)格式相對應,如字典、列表、字符串、數(shù)字、布爾值和None。01使用Python的`json`模塊解析JSON數(shù)據(jù),并通過鍵或索引提取所需信息。示例:`importjson;json_str='{"name":"John","age":30,"city":"NewYork"}';data=json.loads(json_str);print(data['name'])`可以使用循環(huán)遍歷JSON對象或數(shù)組,處理更復雜的數(shù)據(jù)結構。JSON數(shù)據(jù)解析與提取數(shù)據(jù)格式化之XML處理05標記語言XML是一種標記語言,用于描述和傳輸數(shù)據(jù)??蓴U展性XML標簽自定義,可根據(jù)需求擴展數(shù)據(jù)描述方式。結構化數(shù)據(jù)XML使數(shù)據(jù)具有結構化,便于在不同系統(tǒng)之間進行數(shù)據(jù)交換。XML數(shù)據(jù)格式簡介使用ElementTree解析XML文件導入ElementTree模塊importxml.etree.ElementTreeasET。解析XML文件使用`ET.parse()`方法解析XML文件,返回ElementTree對象。獲取根節(jié)點通過`getroot()`方法獲取XML文件的根節(jié)點。遍歷節(jié)點使用`for`循環(huán)遍歷節(jié)點及其子節(jié)點,獲取所需數(shù)據(jù)。通過pip安裝`lxml`庫,`pipinstalllxml`。安裝lxml庫fromlxmlimportetree。導入lxml模塊使用`etree.parse()`方法解析XML文件,返回Element對象。解析XML文件利用XPath語法查詢XML數(shù)據(jù),如`root.xpath('//tagName')`。XPath查詢使用lxml庫解析XML文件生成XML文件并寫入數(shù)據(jù)創(chuàng)建Element對象使用`ET.Element()`方法創(chuàng)建根節(jié)點和子節(jié)點。構建XML樹結構將創(chuàng)建的節(jié)點按照層級關系進行組合,形成完整的XML樹結構。添加節(jié)點屬性通過`attrib`字典添加節(jié)點屬性,如`element.attrib={'key':'value'}`。寫入XML文件使用`ET.ElementTree()`方法將XML樹結構轉換為ElementTree對象,并通過`write()`方法寫入XML文件。數(shù)據(jù)格式化之CSV處理06CSV(Comma-SeparatedValues)即逗號分隔值,是一種簡單的文件格式,用于存儲表格數(shù)據(jù),如電子表格或數(shù)據(jù)庫。CSV文件由任意數(shù)量的記錄組成,記錄之間以某種換行符分隔;每條記錄由字段組成,字段之間的分隔符是其他字符或字符串,最常見的是逗號或制表符。CSV是一種通用的、相對簡單的文件格式,被廣大用戶、商業(yè)和科學應用接受。CSV數(shù)據(jù)格式簡介導入csv模塊importcsv創(chuàng)建CSV文件讀取器使用`csv.reader()`函數(shù)創(chuàng)建CSV文件讀取器,將打開的文件對象作為參數(shù)傳入。逐行讀取CSV文件內(nèi)容使用`for`循環(huán)遍歷CSV文件讀取器對象,每次循環(huán)讀取一行數(shù)據(jù),每行數(shù)據(jù)是一個列表,列表中的每個元素對應CSV文件中的一個字段。打開CSV文件使用`open()`函數(shù)打開CSV文件,并指定模式為'r'(只讀模式)。使用csv模塊讀取CSV文件內(nèi)容導入csv模塊:importcsv打開CSV文件:使用open()函數(shù)打開CSV文件,并指定模式為'w'(寫入模式),如果文件不存在則創(chuàng)建該文件。創(chuàng)建CSV文件寫入器:使用csv.writer()函數(shù)創(chuàng)建CSV文件寫入器,將打開的文件對象作為參數(shù)傳入。寫入數(shù)據(jù)到CSV文件:使用writerow()方法寫入一行數(shù)據(jù),該方法接受一個列表作為參數(shù),列表中的每個元素對應CSV文件中的一個字段;使用writerows()方法寫入多行數(shù)據(jù),該方法接受一個包含多個列表的列表作為參數(shù),每個列表對應CSV文件中的一行數(shù)據(jù)。使用csv模塊寫入CSV文件內(nèi)容篩選數(shù)據(jù)讀取CSV文件內(nèi)容后,可以使用Python的條件語句和循環(huán)語句對數(shù)據(jù)進行篩選,例如篩選出年齡大于30歲的記錄。排序數(shù)據(jù)對篩選后的數(shù)據(jù)可以使用Python的內(nèi)置排序函數(shù)`sorted()`進行排序,例如按照年齡從小到大排序。排序時可以指定排序的字段和排序方式(升序或降序)。CSV文件內(nèi)容篩選與排序數(shù)據(jù)格式化之Excel處理07Excel文件的基本結構包括工作簿(Workbook)、工作表(Worksheet)和單元格(Cell),其中單元格是數(shù)據(jù)存儲的基本單位。工作簿、工作表和單元格Excel單元格中可存儲的數(shù)據(jù)類型包括文本、數(shù)值、日期、時間等。數(shù)據(jù)類型Excel提供了豐富的公式和函數(shù),用于數(shù)據(jù)處理、計算和分析。公式與函數(shù)Excel數(shù)據(jù)格式簡介ABCD使用openpyxl庫讀取Excel文件內(nèi)容安裝openpyxl庫使用pip命令安裝openpyxl庫,如`pipinstallopenpyxl`。讀取工作表通過工作簿對象的`active`屬性或`worksheet`方法獲取工作表對象。讀取工作簿使用`openpyxl.load_workbook()`函數(shù)讀取Excel文件,返回工作簿對象。讀取單元格數(shù)據(jù)使用工作表對象的`cell()`方法或通過單元格坐標訪問單元格,獲取單元格中的數(shù)據(jù)。使用`openpyxl.Workbook()`函數(shù)創(chuàng)建一個新的工作簿對象。創(chuàng)建工作簿創(chuàng)建工作表寫入數(shù)據(jù)保存文件通過工作簿對象的`active`屬性或`create_sheet()`方法創(chuàng)建新的工作表。使用工作表對象的`cell()`方法或通過單元格坐標訪問單元格,并使用賦值操作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國熔劑灰?guī)r行業(yè)供需形勢及投資收益率預測研究報告
- 2025至2030中國沙茶醬市場規(guī)模預測與競爭格局研究報告
- 2025至2030中國水環(huán)境治理行業(yè)發(fā)展規(guī)劃及前景動態(tài)研究報告
- 2025至2030中國智能吸塵器行業(yè)消費趨勢與未來銷售規(guī)模研究報告
- 2025年嬰幼兒配方食品營養(yǎng)配方調(diào)整與嬰幼兒家庭營養(yǎng)干預研究報告
- 2025至2030中國彎曲模行業(yè)競爭態(tài)勢及需求趨勢研究報告
- 2025至2030中國平板電視行業(yè)消費需求及競爭趨勢研究報告
- 2025至2030中國室內(nèi)隔音室市場運行狀況與前景動態(tài)研究報告
- 2025至2030中國娛樂游戲行業(yè)競爭狀況與投資效益研究報告
- 圖形創(chuàng)意(高職藝術設計)PPT完整全套教學課件
- 2023年財會金融-注冊會計師-審計(官方)考試歷年真題甄選版帶答案
- 2023學年完整公開課版粘壓阻力
- 基于STM32的平衡車系統(tǒng)設計
- YY/T 0299-2022醫(yī)用超聲耦合劑
- MT 181-1988煤礦井下用塑料管安全性能檢驗規(guī)范
- GB/T 193-2003普通螺紋直徑與螺距系列
- 因納特工商管理綜合實訓軟件V4.00
- 四議兩公開工作法課件
- 國有企業(yè)干部選拔任用條例
- 2022年保山數(shù)字產(chǎn)業(yè)發(fā)展有限責任公司招聘筆試題庫及答案解析
評論
0/150
提交評論