網(wǎng)站首頁 編程語言 正文
今天的這篇文章呢,小編來介紹一下如何通過Python
來創(chuàng)建各種形式的文件,這里包括了
- 文本文件
-
CSV
文件 -
Excel
文件 - 壓縮文件
-
XML
文件 -
JSON
文件 -
PDF
文件
1.創(chuàng)建文本文件
文本文件本質(zhì)上是以.txt
后綴結(jié)尾的文件,在Python
當(dāng)中創(chuàng)建文本文件是非常的容易和簡單的,代碼如下
# 通過Python來創(chuàng)建文本文件 # 選擇文件的名稱 file_name = "my_text_file.txt" # 將內(nèi)容寫入至文件中 texts = "Hi, How do you doing?" # 打開文件,編輯模式 with open(file_name, "w") as file: file.write(texts) # 打印創(chuàng)建文本文件成功的信息 print(f"{file_name} 創(chuàng)建成功!")
當(dāng)然了要是我們想要來讀取該文件當(dāng)中的內(nèi)容,代碼也非常的簡單,如下所示
# 用Python讀取文本文件 # 文件的名稱 file_name = "my_text_file.txt" # 打開文件,讀取當(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
模塊,代碼也是十分的簡單,如下所示
import csv # 文件的名稱 file_name = "my_csv_file.csv" # 打開文件,并且是編輯的模式 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" #?寫入的內(nèi)容 content?=?[ ????["Number",?"Name",?"Company"], ????[1,?"Elon?Musk",?"Tesla"], ????[2,?"Bill?Gates",?"Microsoft"], ????[3,?"Jeff?Bezos",?"Amazon"], ????[4,?"Steve?Jobs",?"Apple"] ] #?打開文件并且開啟編輯的模式 with?open(file_name,?"w")?as?file: ?#?創(chuàng)建編輯的工具 ????writer?=?csv.writer(file) ????writer.writerows(content) #?打印出文件創(chuàng)建成功的消息 print(f"{file_name}?創(chuàng)建成功!")
我們來看一下文件當(dāng)中的內(nèi)容,如下所示
那么當(dāng)我們想要來讀取該CSV
文件的時(shí)候,就需要下面的這個(gè)代碼,如下所示
#?CSV文件的名稱 file_name?=?"my_csv_file.csv" #?打開文件,讀取文件的模式 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
模塊,要是你還沒有下載該模塊,這里就需要用到pip
命令來實(shí)現(xiàn)模塊的安裝了,如下
pip?install?openpyxl
創(chuàng)建Excel
文件的方式也特別簡單,代碼如下
#?導(dǎo)入模塊 from?openpyxl?import?Workbook #?Excel文件的文件名 file_name?=?"my_excel_file.xlsx" #?創(chuàng)建文件的工具 workbook?=?Workbook() sheet_1?=?workbook.active
編輯Excel
文件的方式有三種,我們這里一一來介紹一下,第一種是在指定的單元格當(dāng)中放入需要填充的內(nè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)
方法二的話和方法一是十分相類似的,代碼如下
#?通過指定單元格的位置來填充內(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)
方法三,通過調(diào)用append()
方法來實(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)
我們來看一下文件當(dāng)中的內(nè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 #?開始讀取的行的位置 min_row?=?sheet_1.min_row #?讀取行的位置讀取到哪兒 max_row?=?sheet_1.max_row #?開始讀取單元格的位置 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)中來創(chuàng)建壓縮文件是非常簡單的,這里需要用到tarfile
模塊,代碼如下
#?導(dǎo)入模塊 import?tarfile #?打開壓縮文件,編輯模式 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): ???? ????#?打開文件 ????with?tarfile.open(filename,?"r")?as?file: ????????#?解壓縮全部的文件 ????????file.extractall() ???????? ????#?打印解壓縮成功的消息 ????print(f"{filename}?解壓縮成功!")
那么要是我們想要打印出來解壓縮文件當(dāng)中的文件名,代碼也非常的簡單,如下所示
#?導(dǎo)入模塊 import?tarfile #?解壓縮包的名稱 filename?=?"my_tar_file.tar" #?檢查文件是否是壓縮包的格式 if?tarfile.is_tarfile(filename): ???? ????#?打開文件 ????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): ???? ????#?打開文件 ????with?tarfile.open(filename,?"r")?as?file: ????????#?獲取解壓縮包中文件的名稱 ????????files?=?file.getnames() ???????? ????????#?輸入你想要解壓縮的文件名 ????????fname_to_extract?=?"text_file_1.txt" ????????#?檢查文本文件是否存在 ????????if?fname_to_extract?in?files: ????????????#?解壓縮指定的文件出來 ????????????file.extract(fname_to_extract)??? ???????? ????#?打印成功 ????print("File?extracted?successfully")
5.創(chuàng)建XML文件
在Python
當(dāng)中創(chuàng)建XML
文件就需要用到xml
模塊,我們這里定義一個(gè)函數(shù)來創(chuàng)建XML
文件,代碼如下
#?導(dǎo)入模塊 import?xml.etree.ElementTree?as?xml #?函數(shù)方法來創(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)容寫入至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
文件中寫入內(nèi)容這里需要用到dump()
方法,代碼如下
#?導(dǎo)入模塊 import?json #?鍵值對來寫入至JSON文件中 data?=?{ ????"name":?"junxin", ????"profession":?"Blogging", ????"programming_language":?"Python", } #?創(chuàng)建文件,并且以編輯的模式打開 with?open("my_json_file.json",?"w")?as?file: ????#?這里調(diào)用到dump()方法來寫入內(nèi)容 ????json.dump(data,?file) ???? #?打印創(chuàng)建成功的信息 print("創(chuàng)建成功!")
而當(dāng)我們想要來查看JSON
文件當(dāng)中的內(nèi)容,這里就需要調(diào)用load()
方法,代碼如下
#?導(dǎo)入模塊 import?json #?打開文件 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文件
如果是要創(chuàng)建PDF
文件的話,這里就需要用到fpdf
模塊,這里用到pip
命令來進(jìn)行該模塊的下載,
pip?install?fpdf
我們嘗試往PDF
文件中寫入內(nèi)容,代碼如下
#?導(dǎo)入模塊 import?fpdf #?創(chuàng)建實(shí)例 pdf?=?fpdf.FPDF() #?添加一頁內(nèi)容 pdf.add_page() #?設(shè)置字體的格式 pdf.set_font("arial") #?設(shè)置字體的大小 pdf.set_font_size(18) #?寫入內(nèi)容 pdf.cell(w=0,?txt="Hello?World!!",?ln=0) #?保存內(nèi)容 pdf.output("my_pdf.pdf")
原文鏈接:https://mp.weixin.qq.com/s/Tc3e_nPXZt4lcDb6dtG7sA
相關(guān)推薦
- 2022-04-04 Python進(jìn)制轉(zhuǎn)換用法詳解_python
- 2022-04-27 .Net?Core中使用MongoDB搭建集群與項(xiàng)目實(shí)戰(zhàn)_基礎(chǔ)應(yīng)用
- 2022-08-23 .net中的DI框架AutoFac簡單介紹_實(shí)用技巧
- 2022-06-30 C語言中結(jié)構(gòu)體的內(nèi)存對齊規(guī)則講解_C 語言
- 2023-01-14 python與matlab一些常用函數(shù)互轉(zhuǎn)問題_python
- 2022-12-29 Kotlin使用滾動控件RecyclerView實(shí)例教程_Android
- 2023-07-10 NGINX使用rewrite報(bào)錯(cuò)。
- 2022-11-08 PostgreSQL查看帶有綁定變量SQL的通用方法詳解_PostgreSQL
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支