文件操作

一、打开文件:文件句柄 = 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')

 

原文地址:https://www.cnblogs.com/gyy-15768200938/p/10797839.html