0
点赞
收藏
分享

微信扫一扫

数据分析利器Python——文件操作(txt、json,Excel,CSV)

小暴龙要抱抱 2022-04-27 阅读 63

一、TXT文件操作

txt文件由字符串行组成,每行由EOL字符隔开,‘\n’

打开文件

file_obj = open(file_name,mode)

mode可以为’w’,‘r’

读操作

file_obj.read()读取整个文件内容,文件必须已存在

file_obj.readline()逐行读取

file_obj.readlines()返回列表,列表中每个元素为行内容

写操作

file_obj.write()将内容写入文件,文件可以不存在,若不存在,系统会自动创建

file_obj.writelines()字符串列表内容逐行写入文件

关闭文件

file_obj.close()

with语句

作用:

  • 包括了异常处理,自动调用文件关闭操作
  • 适合对资源访问的场合,无论使用过程中是否发生异常都会执行“清理”操作,比如文件关闭操作和线程的自动获取与释放。
  • 语法为:
with open(file_name) as f_obj:
	# 执行相关操作

在这里插入图片描述

二、JSON文件

JavaScript对象表示法,它是轻量级的数据交换格式,用来传输由属性值或者序列性的值组合的数据对象。可以使用jsonviewer查看器查看json文件的层级格式。

结构

数据是键值对,存在两种结构

  • 对象(object):由{}表示,如{key1:val1,key2:val2}
  • 数组(array):由[]表示,如[val1,val2,val3]

读操作

(1)从文件读取:json.load()
(2)从字符串变量读取:json.loads()

由于json的两种结构(对象和数组)我们前面都已经讲过,关于他们的遍历是Python的基础知识,此处不再赘述。

写操作

(1)写入文件:json.dump()
(2)写入字符串变量:json.dumps()

三、CSV文件和Excel文件

以纯文本形式存储的表格数据(以逗号作为分隔符),通常以第一列为列名。

文件读取

Excel文件的读取
import numpy as np
import pandas as pd
data = pd.read_excel('data.xlsx') # data为DataFrame结构,是一种二维结构
data.head() # 查看前5行数据
'''
--------------------------------------
datapd.read_excel('data.xlsx',sheet_name=0,encoding='utf-8')
其中sheet_name用于指定要读取的工作表,可以为数字(默认0,即第一个工作表),也可以为工作表名。index_col用于设置某一列为行索引
'''

读取多个工作簿时,可以把sheet_name赋值为一个列表

CSV文件读取
import numpy as np
import pandas as pd
data = pd.read_csv('data.xlsx') # data为DataFrame结构,是一种二维结构
data.head() # 查看前5行数据
# data = pd.read_csv('data.xlsx',delimiter = ',',encoding='utf-8')
# delimiter用于指定分割符,默认以逗号分割,也可以通过index_col指定某一列为索引,

文件写入

Excel文件写入
# 先创建一个DataFrame
data = pd.DataFrame([1,2],[3,4],[5,6],columns = ['A列','B列'])
data.to_excel('data_new.xlsx')
'''
如果想在写入数据时不保留行索引信息,可以设置to_excel()函数的参数。
常用参数有:
	sheet_name用于指定工作表名称;
	index用于指定是否写入行索引信息,默认为True,即将行索引信息写入输出文件的第1列,若设置为False,则忽略行索引信息;
	columns用于指定要写入的列;
	encoding用于指定编码方式
'''

如果想要写入多个工作簿,则可使用如下方式:

writer = pd.ExcelWriter('output.xlsx')
df1.to_excel(writer,'Sheet1')
df2.to_excel(writer,'Sheet2')
writer.save()
CSV文件写入
data.to_csv('data_new.csv')
# 如果生成的CSV文件中有中文乱码现象,且设置encoding参数为“utf-8”失效,
#则需要设置encoding参数为“utf_8_sig”
举报

相关推荐

0 条评论