一、打开文件:文件句柄
=
open
(
'文件路径'
,
'模式'
)
python中打开文件有两种方式,即:open(...) 和 file(...),本质上前者在内部会调用后者来进行文件操作,在这里我们推荐使用open,解释
二、操作文件
操作文件包括了文件的读、写和关闭,首先来谈谈打开方式:当我们执行 文件句柄
=
open
(
'文件路径'
,
'模式'
)操作的时候,要传递给open方法一个表示模式的参数:
打开文件的模式有:
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+,可读写文件。【可读;可写;可追加】
- w+,先写再读。【这个方法打开文件会清空原本文件中的所有内容,将新的内容写进去,之后也可读取已经写入的内容】
- a+,同a
"U"表示在读取时,可以将 自动转换成 (注意:只能与 r 或 r+ 模式同使用)
- rU
- r+U
- rbU
-
rb+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)rb
wb
ab - Excel与CSV相互转换
-
# -*- coding: utf-8 -*- """ Created on Mon Apr 29 10:28:00 2019 @author: guo'yu'yi """ import pandas as pd def ExcelToCsv_1(StartName, SheetName, EndName): grade = pd.read_excel(StartName, sheet_name=SheetName) for i in range(len(grade.index)): for j in range(1, len(grade.columns)): if grade.iloc[i, j] == '优秀': grade.iat[i, j] = 90 elif grade.iloc[i, j] == '良好': grade.iat[i, j] = 80 elif grade.iloc[i, j] == '合格': grade.iat[i, j] = 60 else: grade.iat[i, j] = 0 grade.to_csv(EndName) def ExcelToCsv_2(StartName, SheetName, EndName): grade = pd.read_excel(StartName, sheet_name=SheetName) Grade = grade.replace("优秀", "90") Grade = Grade.replace("良好", "80") Grade = Grade.replace("不合格", "60") Grade = Grade.replace("合格", "60") Grade = Grade.fillna(value = 0) Grade.to_csv(EndName) ExcelToCsv_2("D:\python文件\Python成绩登记信计.xlsx", "Sheet1", "D:\python文件\Python__1.csv") ExcelToCsv_1("D:\python文件\Python成绩.xlsx", "Sheet1", "D:\python文件\Python__2.csv")
CSV与HTML的转换
# -*- coding: utf-8 -*- """ Created on Mon Apr 29 10:24:36 2019 @author: guo'yu'yi """ def fill_data(excel, length=4): text = '<tr>' for i in range(length): tmp = '<td align="center">{}</td>'.format(excel[i+1]) text += tmp text += "</tr> " return text def GetCsv(csvFile): ls = [] csv = open(csvFile, 'r', encoding="utf-8") for line in csv: line = line.replace(' ', '') ls.append(line.split(',')) return ls def CsvToHtml(csvFile, HTMLFILE, thNum): # HTML1 HTML2 分别为html文件的首部和尾部 HTML1 = ''' <!DOCTYPE HTML> <html> <body> <meta charset=gbk2313> <h1 align=center>Python成绩表(24guoyuyi)</h2> <table border='blue'> ''' HTML2 = "</table> </body> </html>" csv_list = GetCsv(csvFile) # 获得csv文件数据 hF = open(HTMLFILE, 'w') # 创建html文件 hF.write(HTML1) # 写入html文件首部 for i in range(1, thNum+1): # 写入表格的表头(即第1行) hF.write('<th width="20%">{}</th> '.format(csv_list[0][i])) hF.write("</tr> ") for i in range(1, len(csv_list)): # 写入表格的数据,从第2行开始为数据 hF.write(fill_data(csv_list[i], 5)) hF.write(HTML2) # 写入html文件尾部 hF.close() # 关闭html文件 CsvToHtml("D:\python文件\Python__2.csv", "D:\python文件\Python+2.html", 5)
我的第一个网页
# -*- coding: utf-8 -*-
"""
Created on Mon May 6 10:01:01 2019
@author: guo'yu'yi
"""
print('Content-type:text/html
')
print('hello world,124yuyi')