csv和excel文件操作
csv文件讀操作
什么是csv文件
csv文件叫逗號分隔值文件
每一行內(nèi)容是通過逗號來區(qū)分出不同的列
csv文件可以直接通過excel打開,以行列的形式保存和顯示數(shù)據(jù),但是相對excel文件,它只能存儲數(shù)據(jù),不能保存公式和函數(shù)
csv讀操作
import csv
創(chuàng)建打開csv文件
""" 文件對象 = open() 文件對象.close()with open() as 文件對象:操作文件 """舉例:
f = open('電影.csv', 'r', encoding='utf-8')創(chuàng)建reader獲取文件內(nèi)容
""" csv.reader(文件對象) - 獲取文件內(nèi)容,并且以列表為單位返回每一行內(nèi)容 csv.DictReader(文件對象) - 獲取文件內(nèi)容,并且以字典為單位返回第2行開始的每一行內(nèi)容(字典的鍵是第一行內(nèi)容) """ import csvf = open('電影.csv', 'r', encoding='utf-8') reader1 = csv.reader(f) print(list(reader1)) reader2 = csv.DictReader(f) print(list(reader2))csv文件寫操作
打開文件
f = open('data.csv', 'w', encoding='utf-8')如果沒有文件,則會自動創(chuàng)建
創(chuàng)建writer對象
""" csv.writer(文件對象) - 創(chuàng)建writer對象,這個對象在寫入數(shù)據(jù)的時候一行對應(yīng)一個列表csv.DictWriter(文件對象,鍵列表) - 創(chuàng)建writer對象,以字典為單位寫入數(shù)據(jù) """以列表為單位寫入一行內(nèi)容
writer = csv.writer(f)一次寫入一行內(nèi)容
writer.writerow(['姓名', '出生日期', '性別', '電話']) writer.writerow(['小明', '2001', '男', '110'])一次寫入多行內(nèi)容
writer.writerows([['小花', '2001', '女', '110'],['小華', '2001', '女', '110'] ])以字典為單位寫入一行內(nèi)容
writer = csv.DictWriter(f, ['姓名', '出生日期', '性別', '電話'])寫入文件頭(將字典的鍵寫入到文件開頭)
writer.writeheader()一次寫入一行內(nèi)容
writer.writerow({'姓名': '小明', '出生日期': '2000-2-3', '性別': '男', '電話': '112'})一次寫入多行內(nèi)容
writer.writerows([{'姓名': '小花', '出生日期': '2000-2-3', '性別': '男', '電話': '112'},{'姓名': '小華', '出生日期': '2000-2-3', '性別': '男', '電話': '112'} ])虛擬環(huán)境
系統(tǒng)環(huán)境
安裝python就可以為計算機(jī)提供一個python的系統(tǒng)環(huán)境
虛擬環(huán)境
程序員根據(jù)需要自己創(chuàng)建的python環(huán)境
能夠創(chuàng)建虛擬環(huán)境的前提:存在系統(tǒng)環(huán)境
環(huán)境的作用
提供python解釋器
提供第三方庫
虛擬環(huán)境的存在可以讓第三方庫根據(jù)類別或者項(xiàng)目分開管理
使用虛擬環(huán)境的建議
怎么創(chuàng)建虛擬環(huán)境
使用pycharm創(chuàng)建
使用指令創(chuàng)建
excel文件讀操作
認(rèn)識excel文件
工作簿:一個excel文件就是一個工作簿
工作表:一個工作簿中可以有多個工作表(至少一個)
單元格:單元格是excel文件保存數(shù)據(jù)的基本單位
行號和列號:可以確定單元格位置
獲取excel文件內(nèi)容
打開excel文件創(chuàng)建工作簿對象
openpyxl.open(excel文件路徑)
openpyxl.load_workbook(excel文件路徑)
import openpyxlworkbook = openpyxl.open('三國人物數(shù)據(jù).xlsx') # 或者 workbook = openpyxl.load_workbook('三國人物數(shù)據(jù).xlsx')獲取工作表
工作簿對象.active - 獲取活躍表(選中的表)
工作簿對象[工作表名稱] - 獲取指定名字對應(yīng)的工作表
sheet1 = workbook.active print(sheet1)sheet2 = workbook['工作表名稱'] print(sheet2)如果要獲取工作簿中所有的工作表表名
workbook.sheetnames
result = workbook.sheetnames print(result)獲取單元格
工作表對象.cell(行號, 列號)
cell1 = sheet2.cell(8, 1) cell2 = sheet2.cell(12, 1) print(cell1, cell2)獲取單元格內(nèi)容
單元格對象.value
print(cell1.value) print(cell2.value)獲取最大行號和最大列號(保存了數(shù)據(jù)的有效行和有效列)
工作表對象.max_row
工作表對象.max_column
print(sheet2.max_row) print(sheet2.max_column)excel文件寫操作
注意:不管是以什么樣的方式對excel進(jìn)行寫操作,操作完成之后必須保存
新建工作簿
新建工作簿對象
openpyxl.Workbook()
例如:
workbook = openpyxl.Workbook()保存
工作簿對象.save(文件路徑)
實(shí)際中新建工作簿的時候需要先判斷工作簿對應(yīng)的文件是否已經(jīng)存在,存在就不需要新建,不存在才新建
法一
try:workbook = openpyxl.open('student2.xlsx') except FileNotFoundError:workbook = openpyxl.Workbook()workbook.save('student2.xlsx')法二
os.path.exists(文件路徑) - 判斷指定文件是否存在,存在返回True,不存在返回False
import osif os.path.exists('student2.xlsx'):workbook = openpyxl.open('student2.xlsx') else:workbook = openpyxl.Workbook()workbook.save('student2.xlsx')工作表的寫操作
新建工作表
工作簿對象.create_sheet(表名, 下標(biāo))
實(shí)際中的新建表:沒有的時候才新建,有的時候直接打開
if 'Python' in workbook.sheetnames:sheet = workbook['Python'] else:sheet = workbook.create_sheet('Python')workbook.save('student2.xlsx')刪除工作表
工作簿對象.remove(工作表對象)
workbook.remove(workbook['Sheet1']) workbook.save('student2.xlsx')實(shí)際中刪除表:存在的時候才能刪
if 'Sheet1' in workbook.sheetnames:workbook.remove(workbook['Sheet1'])workbook.save('student2.xlsx')單元格的寫操作
單元格對象.value = 數(shù)據(jù)
java_sheet = workbook['Java'] java_sheet.cell(1, 3).value = '電話' java_sheet.cell(2, 1).value = None java_sheet.cell(4, 2).value = 'stu003'workbook.save('student2.xlsx')總結(jié)
以上是生活随笔為你收集整理的csv和excel文件操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对csv文件,又get了新的认知
- 下一篇: 升级到Win 8之前必须关注的十个问题