热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python文件操作与数据转换

本文详细介绍了Python中文件的基本操作,包括打开、读取、写入和关闭文件的方法,并通过实例展示了如何将Excel文件转换为CSV文件以及进一步转换为HTML文件。此外,还涉及了成绩等级替换的具体实现。

本文将详细介绍Python中的文件操作及数据格式转换,涵盖从基础的文件读写到复杂的数据处理。

### 一、Python 文件操作

在Python中,文件操作通常分为三个步骤:打开文件、执行读写操作、关闭文件。

#### 1. 打开文件

使用open()函数可以打开文件,其语法如下:

file_object = open(file_name, mode)

模式

说明

r

只读模式(默认),文件不存在则抛出FileNotFoundError异常

w

覆盖写模式,文件不存在则创建,存在则覆盖写

x

创建写模式,文件不存在则创建,存在则抛出FileExistsError异常

a

追加写模式,文件不存在则创建,存在则追加写

t

文本文件模式(默认)

b

二进制文件模式

+

在原有功能基础上增加读写功能

#### 2. 读取文件

方法

说明

file.read(size=-1)

读取文件全部内容,若指定参数,则读取前size个字符或字节

file.readline(size=-1)

读取一行内容,若指定参数,则读取该行前size个字符或字节

file.readlines(hint=-1)

读取所有行并返回列表,若指定参数,则读取hint行

#### 3. 写入文件

方法

说明

file.write(s)

写入字符串或字节流

file.writelines(lines)

写入字符串列表

file.seek(offset)

移动文件指针位置(offset值:0-文件开头;1-当前位置;2-文件结尾)

#### 4. 关闭文件

file_object.close()

### 二、Excel文件转CSV文件

以下代码示例展示了如何使用Pandas库将Excel文件转换为CSV文件:

import pandas as pd
def xlsx_to_csv_pd():
data_xls = pd.read_excel('D:\Python作业\Python成绩登记信计.xlsx', index_col=0)
data_xls.to_csv('D:\Python作业\成绩登记表1.csv', encoding='gbk')
if __name__ == '__main__':
xlsx_to_csv_pd()

### 三、成绩等级替换

接下来,我们将“优秀”、“良好”、“合格”、“不合格”分别替换为90分、80分、60分、0分:

import os
import os.path
csv_path = os.getcwd() + "\\"
with open('D:\Python作业\成绩登记表.csv', 'r', encoding='gbk') as f:
cOntent= f.read()
t = content.replace("优秀", "90分")
t = t.replace("良好", "80分")
t = t.replace("合格", "60分")
t = t.replace("不合格", "0分")
with open('D:\Python作业\成绩登记表.csv', 'w', encoding='gbk') as f1:
f1.write(t)

### 四、CSV文件转HTML文件

最后,我们将CSV文件转换为HTML文件:

import pandas as pd
df = pd.read_excel('file:Python作业/成绩登记表.xlsx', index_col=None, na_values=['NA'])
df['一'] = df['一'].map({'优秀': 90, '良好': 80, '合格': 60, '不合格': 0})
df['二'] = df['二'].map({'优秀': 90, '良好': 80, '合格': 60, '不合格': 0})
df['三'] = df['三'].map({'优秀': 90, '良好': 80, '合格': 60, '不合格': 0})
df['四'] = df['四'].map({'优秀': 90, '良好': 80, '合格': 60, '不合格': 0})
df.to_html('C:/Users/86134/.spyder-py3/成绩表1.html')

推荐阅读
author-avatar
小梅LMY
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有