zoukankan      html  css  js  c++  java
  • 文件操作

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

     

  • 相关阅读:
    安装archlinux的另辟蹊径的命令及心得
    deepin15.11安装N卡驱动,实测!!!(可解决N卡电脑关机卡屏)
    js实现简单下载
    微信公众号的开发 该公众号提供的服务出现故障,请稍后再试
    线程池的创建
    多线程,生产者消费者模型(生产馒头,消费馒头)
    第1章 Java IO系统 下
    T01章[Java IO系统] 作业
    第1章 Java IO系统
    用集合实现一个控制台版的学生管理系统
  • 原文地址:https://www.cnblogs.com/gyy-15768200938/p/10797839.html
Copyright © 2011-2022 走看看