利用Python3读写常用文件中的数据
专业需要,平时需要处理比较多的数据文件,仅根据平时处理的比较多的文件类型给出解决方案,不是最好的处理方法,仅个人偏好。
1. open()函数
文件读取
假设我们导入的是逗号分隔的CSV文件或者Tab分隔的TXT文件,我们需要遍历这张表中的每个元素做处理
fh = open("path_name", "r", encoding = "gb18030", errors = "ignore") # path_name是文件路径
for line in fh: # 按行读取,每行作为字符串被读取
line = line.strip('\n') # 去掉每行的换行符
line = line.split(',') # TXT文件则改为'\t',这一行的元素将会被保存为列表
....... # 一系列操作
fh.close() # 有open就一定要有close
文件写入
以写入CSV文件为例,比方说按行写入一个表格
fh = open("path_name", "w", encoding = "gb18030", errors = "ignore") # 读是r写是w
while ... : # 循环写入,省略号表示循环条件
fh.write("xxx" + "," + "xxx" + ",")
fh.write("xxx" + "\n")
fh.writeline("xxx" + "," + "xxx" + "," + "xxx") # 条件允许的情况下用writeline()函数,不用加"\n"
fh.close()
2. DataFrame
column1 | column2 | column3 | … | |
---|---|---|---|---|
index1 | value11 | value12 | value13 | … |
index2 | value21 | value22 | value23 | … |
index3 | value31 | value32 | value33 | … |
… | … | … | … | … |
对形如上表的CSV文件Excel文件等可以用DataFrame来解决,这里以Excel为例。
文件读取
import pandas as pd # 导入pandas模块
df = pd.read_excel("path_name")
data = df.values # value对应的object,如果全是数值则为numpy.ndarray
index = list(df.index) # 这里注意df.index不是列表,需要手动转换
columns = list(df.columns)
文件写入
df = pd.DataFrame(data, index = index, columns = columns)
df.to_excel("path_name")