zoukankan      html  css  js  c++  java
  • 关于Python文件读写

    Python中文件操作可以通过open函数,这的确很像C语言中的fopen。通过open函数获取一个file object,然后调用read(),write()等方法对文件进行读写操作。

    1.open

    使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

    file_object = open('thefile.txt')
    try:
        all_the_text = file_object.read( )
    finally:
        file_object.close( )

    注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法

    2.读文件

    读文本文件

    input = open('data', 'r')
    #第二个参数默认为r
    input = open('data')

    读二进制文件

    input = open('data', 'rb')

    读取所有内容

    file_object = open('thefile.txt')
    try:
        all_the_text = file_object.read( )
    finally:
        file_object.close( )

    读固定字节

    file_object = open('abinfile''rb')
    try:
        while True:
            chunk = file_object.read(100)
            if not chunk:
                break
            do_something_with(chunk)
    finally:
        file_object.close( )

    如果文件是文本文件,还可以直接遍历文件对象获取每行:

    for line in file_object:
        process line

    3.写文件

    写文本文件

    output = open('data', 'w')

    写二进制文件

    output = open('data', 'wb')

    写数据

    file_object = open('thefile.txt', 'w')
    file_object.write(all_the_text)
    file_object.close( )

     成绩表修改

    # -*- coding:utf-8
    
    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成绩(1)", "Sheet1", "D:\Python成绩(1).csv")
    ExcelToCsv_1("D:\Python成绩登记信计(1)", "Sheet1", "D:\Python成绩登记信计(1).csv")

    如图:

    使用第三方库pandas将xlsx文件转csv文件

    import pandas as pd
     
     
    def xlsx_to_csv_pd():
        data_xls = pd.read_excel('1.xlsx', index_col=0)
        data_xls.to_csv('1.csv', encoding='utf-8')
     
     
    if __name__ == '__main__':
        xlsx_to_csv_pd()
  • 相关阅读:
    新浪微博千万级规模高性能、高并发的网络架构经验分享
    PHP- 如何在终端输出带颜色的字体?
    淘宝大秒杀系统是如何设计的?
    如何打造千万级Feed流系统
    Redis实现分布式锁 php
    Ubuntu16.04 安装PHP7 的 imagick 扩展
    nginx配置http访问自动跳转到https
    使用Redis来实现LBS的应用
    PHP多进程编程初步
    选redis还是memcache,源码怎么说
  • 原文地址:https://www.cnblogs.com/hzxxxb/p/10780887.html
Copyright © 2011-2022 走看看