文件的使用包括:打開,讀取,輸出html
打開模式app |
說明spa |
r指針 |
只讀模式 (默認),文件不存在則返回FileNotFoundError異常excel |
wcode |
覆蓋寫模式,文件不存在則建立,存在則覆蓋寫orm |
xhtm |
建立寫模式,文件不存在則建立,存在則返回FileExistsError異常blog |
autf-8 |
追加寫模式,文件不存在則建立,存在則追加寫 |
t |
文本文件模式 (默認) |
b |
二進制文件模式 |
+ |
在原功能基礎上增長讀寫功能 |
讀文件方法 |
說明 |
<file>.read(size=-1) |
從文件中讀入全部內容,如有參數,則讀入前size長度的字符串或字節流 |
<file>.readline(size=-1) |
從文件中讀入一行內容,如有參數,則讀入改行前size長度的字符串或字節流 |
<file>.readlines(hint=-1) |
從文件中讀入全部行,以每行爲元素造成列表,如有參數,則讀入hint行 |
寫文件方法 |
說明 |
<file>.write(s) |
向文件中寫入一個字符串或字節流 |
<file>.writelines(lines) |
將一個全爲字符串的列表寫入文件 |
<file>.seek(offset) |
改變當前文件操做指針的位置(offset值) |
關閉文件
2.將excel轉化爲csv格式
import pandas as pd df = pd.read_excel('Python成績登記信計.xlsx')#讀寫文件 da = df.to_csv('E:\Anaconda之做業\Python成績登記信計.csv')#更改xlsx文件爲csv文件 da = pd.read_csv('E:\Anaconda之做業\Python成績登記信計.csv',index_col=0)#讀取文件 da = da.replace('優秀','90') #替換數據 da = da.replace('良好','80') da = da.replace('合格','60') da = da.replace('不合格','10') da = da.fillna(0) print(da) dc = da.to_csv('E:\Anaconda之做業\Python成績登記信計.csv')#保存csv文件
3.將csv改成html格式
seg1 = ''' <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=utf-8> <h1 align=center>Python成績登記信計</h1> <table border='1' align="center" width=100%> <tr bgcolor='yellow'>\n''' #建立一個HTML文件表格,包括標題,寬度 seg2="</tr>\n" seg3="</table>\n</body>\n</html>" def fill_data(locls):#建立表格內容 seg = '<tr><td align="center">{}</td><td align="center">\ {}</td><td align="center">{}</td><td align="center">\ {}</td ><td align="center">{}</td></tr><td align="center">{}</td></tr>\n'.format(*locls) return seg fr = open("E:\Anaconda之做業\Python成績登記信計.csv","r",encoding='utf-8')#打開文件 ls = [] for line in fr:#將文件內容導入表格 line = line.replace("\n","") ls.append(line.split(","))#去除逗號分隔符 print(ls) fr.close()#關閉文件 fw = open("E:\Anaconda之做業\Python成績登記信計.html","w",encoding='utf-8')#操做HTML文件 fw.write(seg1) fw.write('<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n<th width="10%">{}</th>\n'.format(*ls[0]))#寫入文件中的數據到表格中 fw.write(seg2)#寫入數據 for i in range(len(ls)-1):#進行循環,寫入數據 fw.write(fill_data(ls[i+1])) fw.write(seg3) fw.close#關閉並保存文件
效果如圖