Python創(chuàng)建7種不同的文件格式的方法總結(jié)
今天的這篇文章呢,小編來(lái)介紹一下如何通過(guò)Python
來(lái)創(chuàng)建各種形式的文件,這里包括了
- 文本文件
CSV
文件Excel
文件- 壓縮文件
XML
文件JSON
文件PDF
文件
1.創(chuàng)建文本文件
文本文件本質(zhì)上是以.txt
后綴結(jié)尾的文件,在Python
當(dāng)中創(chuàng)建文本文件是非常的容易和簡(jiǎn)單的,代碼如下
# 通過(guò)Python來(lái)創(chuàng)建文本文件 # 選擇文件的名稱 file_name = "my_text_file.txt" # 將內(nèi)容寫(xiě)入至文件中 texts = "Hi, How do you doing?" # 打開(kāi)文件,編輯模式 with open(file_name, "w") as file: file.write(texts) # 打印創(chuàng)建文本文件成功的信息 print(f"{file_name} 創(chuàng)建成功!")
當(dāng)然了要是我們想要來(lái)讀取該文件當(dāng)中的內(nèi)容,代碼也非常的簡(jiǎn)單,如下所示
# 用Python讀取文本文件 # 文件的名稱 file_name = "my_text_file.txt" # 打開(kāi)文件,讀取當(dāng)中的內(nèi)容 with open(file_name, "r") as file: texts = file.read() # 打印文本文件中的內(nèi)容 print(texts)
2.創(chuàng)建CSV文件
CSV
文件在我們的日常生活學(xué)習(xí)當(dāng)中也是非常常用的,要想創(chuàng)建CSV
文件,這里就需要用到Python
當(dāng)中的CSV
模塊,代碼也是十分的簡(jiǎn)單,如下所示
import csv # 文件的名稱 file_name = "my_csv_file.csv" # 打開(kāi)文件,并且是編輯的模式 with open(file_name, "w") as file: writer = csv.writer(file) # 編輯內(nèi)容 writer.writerow(["Number", "Name", "Company"]) writer.writerow([1, "Elon Musk", "Tesla"]) writer.writerow([2, "Bill Gates", "Microsoft"]) writer.writerow([3, "Jeff Bezos", "Amazon"]) writer.writerow([4, "Steve Jobs", "Apple"]) # 打印編輯成功的消息 print(f"{file_name} 創(chuàng)建成功!")
當(dāng)然了我們這里還可以調(diào)用writerows()
方法,代碼如下
#?CSV文件的名稱 file_name?=?"my_csv_file.csv" #?寫(xiě)入的內(nèi)容 content?=?[ ????["Number",?"Name",?"Company"], ????[1,?"Elon?Musk",?"Tesla"], ????[2,?"Bill?Gates",?"Microsoft"], ????[3,?"Jeff?Bezos",?"Amazon"], ????[4,?"Steve?Jobs",?"Apple"] ] #?打開(kāi)文件并且開(kāi)啟編輯的模式 with?open(file_name,?"w")?as?file: ?#?創(chuàng)建編輯的工具 ????writer?=?csv.writer(file) ????writer.writerows(content) #?打印出文件創(chuàng)建成功的消息 print(f"{file_name}?創(chuàng)建成功!")
我們來(lái)看一下文件當(dāng)中的內(nèi)容,如下所示
那么當(dāng)我們想要來(lái)讀取該CSV
文件的時(shí)候,就需要下面的這個(gè)代碼,如下所示
#?CSV文件的名稱 file_name?=?"my_csv_file.csv" #?打開(kāi)文件,讀取文件的模式 with?open(file_name,?"r")?as?file: ????#?創(chuàng)建讀取文件的工具 ????reader?=?csv.reader(file) ????for?record?in?reader: ????????print(record)
output
['Number', 'Name', 'Company']
['1', 'Elon Musk', 'Tesla']
['2', 'Bill Gates', 'Microsoft']
['3', 'Jeff Bezos', 'Amazon']
['4', 'Steve Jobs', 'Apple']
3.創(chuàng)建Excel文件
這里我們需要用到openpyxl
模塊,要是你還沒(méi)有下載該模塊,這里就需要用到pip
命令來(lái)實(shí)現(xiàn)模塊的安裝了,如下
pip?install?openpyxl
創(chuàng)建Excel
文件的方式也特別簡(jiǎn)單,代碼如下
#?導(dǎo)入模塊 from?openpyxl?import?Workbook #?Excel文件的文件名 file_name?=?"my_excel_file.xlsx" #?創(chuàng)建文件的工具 workbook?=?Workbook() sheet_1?=?workbook.active
編輯Excel
文件的方式有三種,我們這里一一來(lái)介紹一下,第一種是在指定的單元格當(dāng)中放入需要填充的內(nèi)容,代碼如下
#?通過(guò)指定單元格的位置來(lái)填充內(nèi)容 #?第一條記錄 sheet_1["A1"]?=?"S.?no" sheet_1["B1"]?=?"Name" sheet_1["C1"]?=?"Company" #?第二條記錄 sheet_1["A2"]?=?"1" sheet_1["B2"]?=?"Elon?Musk" sheet_1["C2"]?=?"Tesla" #?第三條記錄 sheet_1["A3"]?=?"2" sheet_1["B3"]?=?"Bill?Gates" sheet_1["C3"]?=?"Microsoft" #?第四條記錄 sheet_1["A4"]?=?"3" sheet_1["B4"]?=?"Jeff?Bezos" sheet_1["C4"]?=?"Amazon" #?保存文件 workbook.save(file_name)
方法二的話和方法一是十分相類似的,代碼如下
#?通過(guò)指定單元格的位置來(lái)填充內(nèi)容 #?第一條記錄 sheet_1.cell(row=1,?column=1).value?=?"Number" sheet_1.cell(row=1,?column=1).value?=?"Name" sheet_1.cell(row=1,?column=1).value?=?"Company" #?第二條記錄 sheet_1.cell(row=1,?column=1).value?=?"1" sheet_1.cell(row=1,?column=1).value?=?"Elon?Musk" sheet_1.cell(row=1,?column=1).value?=?"Tesla" #?第三條記錄 sheet_1.cell(row=1,?column=1).value?=?"2" sheet_1.cell(row=1,?column=1).value?=?"Bill?Gates" sheet_1.cell(row=1,?column=1).value?=?"Microsoft" #?第四條記錄 sheet_1.cell(row=1,?column=1).value?=?"3" sheet_1.cell(row=1,?column=1).value?=?"Jeff?Bezos" sheet_1.cell(row=1,?column=1).value?=?"Amazon" #?保存文件 workbook.save(file_name)
方法三,通過(guò)調(diào)用append()
方法來(lái)實(shí)現(xiàn)往Excel
文件當(dāng)中填充內(nèi)容,代碼如下
#?一系列的數(shù)據(jù)內(nèi)容 records?=?[ ????["Number",?"Name",?"Company"], ????[1,?"Elon?Musk",?"Tesla"], ????[2,?"Bill?Gates",?"Microsoft"], ????[3,?"Jeff?Bezos",?"Amazon"] ] #?append()方法填充內(nèi)容 for?record?in?records: ????sheet_1.append(record) #?保存文件 workbook.save(file_name)
我們來(lái)看一下文件當(dāng)中的內(nèi)容,如下所示
而要是我們來(lái)讀取一下文件當(dāng)中的內(nèi)容,代碼如下,這里需要用到iter_rows()
#?導(dǎo)入模塊 import?openpyxl #?文件名的名稱 file_name?=?"my_excel_file.xlsx" #?加載Excel文件 workbook?=?openpyxl.load_workbook(file_name) sheet_1?=?workbook.active #?開(kāi)始讀取的行的位置 min_row?=?sheet_1.min_row #?讀取行的位置讀取到哪兒 max_row?=?sheet_1.max_row #?開(kāi)始讀取單元格的位置 min_col?=?sheet_1.min_column #?單元格讀取的最終的位置 max_col?=?sheet_1.max_column for?record?in?sheet_1.iter_rows(min_row,?max_row,?min_col,?max_col): ????for?cell?in?record: ????????print(cell.value,?end="?") ????print()
output
Number Name Company
1 Elon Musk Tesla
2 Bill Gates Microsoft
3 Jeff Bezos Amazon
4.創(chuàng)建壓縮文件
在Python
當(dāng)中來(lái)創(chuàng)建壓縮文件是非常簡(jiǎn)單的,這里需要用到tarfile
模塊,代碼如下
#?導(dǎo)入模塊 import?tarfile #?打開(kāi)壓縮文件,編輯模式 with?tarfile.open("my_tar_file.tar",?"w")?as?file: ????#?添加txt文本文件,并且指定文件的名稱 ????file.add("text_file_1.txt") ????file.add("text_file_2.txt") #?打印創(chuàng)建成功的消息 print("壓縮包創(chuàng)建成功!")
要是我們想要解壓縮 壓縮包當(dāng)中的文件,這里就可以用到extractall()
方法,代碼如下
#?導(dǎo)入模塊 import?tarfile #?解壓縮文件的名稱 filename?=?"my_tar_file.tar" #?查看文件是否是壓縮文件的格式 if?tarfile.is_tarfile(filename): ???? ????#?打開(kāi)文件 ????with?tarfile.open(filename,?"r")?as?file: ????????#?解壓縮全部的文件 ????????file.extractall() ???????? ????#?打印解壓縮成功的消息 ????print(f"{filename}?解壓縮成功!")
那么要是我們想要打印出來(lái)解壓縮文件當(dāng)中的文件名,代碼也非常的簡(jiǎn)單,如下所示
#?導(dǎo)入模塊 import?tarfile #?解壓縮包的名稱 filename?=?"my_tar_file.tar" #?檢查文件是否是壓縮包的格式 if?tarfile.is_tarfile(filename): ???? ????#?打開(kāi)文件 ????with?tarfile.open(filename,?"r")?as?file: ????????#?解壓縮文件當(dāng)中的文件名稱 ????????files?=?file.getnames() ????????#?遍歷循環(huán)文件名 ????????for?file?in?files: ????????????print(file)
從壓縮包中,解壓縮出指定的文本文件,代碼如下
#?導(dǎo)入模塊 import?tarfile #?解壓縮包的名稱 filename?=?"my_tar_file.tar" #?檢查文件是否是壓縮包的格式 if?tarfile.is_tarfile(filename): ???? ????#?打開(kāi)文件 ????with?tarfile.open(filename,?"r")?as?file: ????????#?獲取解壓縮包中文件的名稱 ????????files?=?file.getnames() ???????? ????????#?輸入你想要解壓縮的文件名 ????????fname_to_extract?=?"text_file_1.txt" ????????#?檢查文本文件是否存在 ????????if?fname_to_extract?in?files: ????????????#?解壓縮指定的文件出來(lái) ????????????file.extract(fname_to_extract)??? ???????? ????#?打印成功 ????print("File?extracted?successfully")
5.創(chuàng)建XML文件
在Python
當(dāng)中創(chuàng)建XML
文件就需要用到xml
模塊,我們這里定義一個(gè)函數(shù)來(lái)創(chuàng)建XML
文件,代碼如下
#?導(dǎo)入模塊 import?xml.etree.ElementTree?as?xml #?函數(shù)方法來(lái)創(chuàng)建XML文件 def?create_XML_file(filename): ????#?Root?element?->?Mobile_shop ????root?=?xml.Element("Mobile_shop") ???? ????#?Root?element?->?mobile_names ????mobile?=?xml.Element("mobile_names") ????root.append(mobile) ???? ????#?Sub?Elements?->?mobile?names ????mobile_1?=?xml.SubElement(mobile,?"mobile_1") ????mobile_1.text?=?"Vivo" ???? ????mobile_2?=?xml.SubElement(mobile,?"mobile_2") ????mobile_2.text?=?"Oppo" ???? ????mobile_3?=?xml.SubElement(mobile,?"mobile_3") ????mobile_3.text?=?"Realme" ???? ????mobile_4?=?xml.SubElement(mobile,?"mobile_4") ????mobile_4.text?=?"Google?Pixel" ???? ????mobile_5?=?xml.SubElement(mobile,?"mobile_5") ????mobile_5.text?=?"IPhone" ???? ????mobile_6?=?xml.SubElement(mobile,?"mobile_6") ????mobile_6.text?=?"Sony" ???? ????tree?=?xml.ElementTree(root) ???? ????#?將內(nèi)容寫(xiě)入至XML文件中 ????with?open(filename,?"wb")?as?file: ????????tree.write(file) ???????? ????#?打印創(chuàng)建成功的信息 ????print("創(chuàng)建成功!") ???? #?調(diào)用上述定義的函數(shù) create_XML_file("my_xml_file.xml")
output
<Mobile_shop><mobile_names><mobile_1>Vivo</mobile_1><mobile_2>Oppo</mobile_2><mobile_3>Realme</mobile_3><mobile_4>Google Pixel</mobile_4><mobile_5>Iphone</mobile_5><mobile_6>Sony</mobile_6></mobile_names></Mobile_shop>
6.創(chuàng)建JSON文件
創(chuàng)建JSON
文件的模塊在Python
當(dāng)中也叫json
,那么往JSON
文件中寫(xiě)入內(nèi)容這里需要用到dump()
方法,代碼如下
#?導(dǎo)入模塊 import?json #?鍵值對(duì)來(lái)寫(xiě)入至JSON文件中 data?=?{ ????"name":?"junxin", ????"profession":?"Blogging", ????"programming_language":?"Python", } #?創(chuàng)建文件,并且以編輯的模式打開(kāi) with?open("my_json_file.json",?"w")?as?file: ????#?這里調(diào)用到dump()方法來(lái)寫(xiě)入內(nèi)容 ????json.dump(data,?file) ???? #?打印創(chuàng)建成功的信息 print("創(chuàng)建成功!")
而當(dāng)我們想要來(lái)查看JSON
文件當(dāng)中的內(nèi)容,這里就需要調(diào)用load()
方法,代碼如下
#?導(dǎo)入模塊 import?json #?打開(kāi)文件 with?open("my_json_file.json",?"r")?as?file: ????#?調(diào)用load()方法 ????content?=?json.load(file) #?打印內(nèi)容 print(content)
output
{'name': 'Gowtham', 'profession': 'Blogging', 'programming_lang_known': 'Python'}
7.創(chuàng)建PDF文件
如果是要?jiǎng)?chuàng)建PDF
文件的話,這里就需要用到fpdf
模塊,這里用到pip
命令來(lái)進(jìn)行該模塊的下載,
pip?install?fpdf
我們嘗試往PDF
文件中寫(xiě)入內(nèi)容,代碼如下
#?導(dǎo)入模塊 import?fpdf #?創(chuàng)建實(shí)例 pdf?=?fpdf.FPDF() #?添加一頁(yè)內(nèi)容 pdf.add_page() #?設(shè)置字體的格式 pdf.set_font("arial") #?設(shè)置字體的大小 pdf.set_font_size(18) #?寫(xiě)入內(nèi)容 pdf.cell(w=0,?txt="Hello?World!!",?ln=0) #?保存內(nèi)容 pdf.output("my_pdf.pdf")
到此這篇關(guān)于Python創(chuàng)建7種不同的文件格式的方法總結(jié)的文章就介紹到這了,更多相關(guān)Python創(chuàng)建文件格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)在tkinter中使用matplotlib繪制圖形的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)在tkinter中使用matplotlib繪制圖形的方法,結(jié)合實(shí)例形式分析了Python使用tkinter與matplotlib進(jìn)行正弦曲線圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01Python報(bào)錯(cuò):OSError:?[Errno?22]?Invalid?argument解決方案及應(yīng)用實(shí)例
最近跑別人的項(xiàng)目遇到一個(gè)這樣的問(wèn)題一開(kāi)始以為是沒(méi)有用管理員的權(quán)限運(yùn)行,導(dǎo)致創(chuàng)建不了日志文件后來(lái)發(fā)現(xiàn)是和windows的命名規(guī)則沖突了,這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò):OSError:?[Errno?22]?Invalid?argument的解決方案及應(yīng)用實(shí)例,需要的朋友可以參考下2024-07-07Python實(shí)現(xiàn)檢測(cè)照片中的人臉數(shù)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)檢測(cè)照片中共有多少?gòu)埲四?,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08Python+OpenCV內(nèi)置方法實(shí)現(xiàn)行人檢測(cè)
OpenCV附帶一個(gè)預(yù)訓(xùn)練的HOG+線性SVM模型,可用于在圖像和視頻流中執(zhí)行行人檢測(cè)。本文我們將使用Opencv自帶的模型實(shí)現(xiàn)對(duì)視頻流中的行人檢測(cè)。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12pyinstaller打包后,配置文件無(wú)法正常讀取的解決
這篇文章主要介紹了pyinstaller打包后,配置文件無(wú)法正常讀取的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02python實(shí)現(xiàn)滑動(dòng)拼圖驗(yàn)證碼擺脫煩人的驗(yàn)證碼輸入
這篇文章主要為大家介紹了python實(shí)現(xiàn)滑動(dòng)拼圖驗(yàn)證碼擺脫煩人的驗(yàn)證碼輸入方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08解決Python獲取字典dict中不存在的值時(shí)出錯(cuò)問(wèn)題
今天小編就為大家分享一篇解決Python獲取字典dict中不存在的值時(shí)出錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10TensorFlow學(xué)習(xí)之分布式的TensorFlow運(yùn)行環(huán)境
這篇文章主要了TensorFlow學(xué)習(xí)之分布式的TensorFlow運(yùn)行環(huán)境的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02