python操作文件

发布于 2021-08-09  1 次阅读


python操作文件

参考资料:

python CSV文件的读、写和合并

读CSV文件

读取整个文件后进行切片处理

import pandas as pd
# 在读取csv文件时候,选择分隔符要和csv文件里所使用的分隔符一致
df = pd.read_csv("路径",sep="\t")
# df是一个dataframe,如果要获取全部值,可以直接df.values
keys = [key for key in df]
# 获取其中的某些值,先给定keys的位置
values = df[keys[1:4]].values

读取文件中的特定行、列

# 第i行
df.iloc[i]
# 前i行
df.iloc[:i]
# 前i行到j行
df.iloc[i+1:j]
# 第i列
df.iloc[:, i]
# 前i列
df.iloc[:, :i]
# 参看某一列
df["该列的名字"]

不读取整个文件直接读取特定的行和列

直接读取某行

import pandas as pd
# 读取前i行
df = pd.read_csv("路径",nrows = i)
# 读取第i行到第j行
pd.read_csv("路径",skiprows=i-1(表示忽略前i-1行),nrows=j-i(继续读取的行数))

直接读取某列

import pandas as pd
# 读取第i列
df = pd.read_csv("路径",usecols=[i-1])

写入csv文件

csv库一行行写入

import csv
# 创建文件对象
f = open("路径",'w',encoding='utf-8')
# 基于文件对象构建csv写入对象
csv_writer = csv.writer(f)
# 构建列表头
csv_writer.writerow(["col1","col2",……])
# 写入csv文件内容
csv_writer.writerow(['x','xx',……])
csv_writer.writerow(['x','xx',……])
……
# 关闭文件
f.close()

pandas库

利用字典形式,一列列的写入

import pandas as pd
# 任意的多组列表
a = [1,2,3]
b = [4,5,6]
# 字典中的key值即为csv中的列名
dataframe = pd.DataFrame({'a_name':a,"b_name":b})
# 将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("test.csv",index=False,sep=",")

直接整体写入

data_frame = pd.DataFrame(columns=keys,data=your_data)
data_frame.to_csv("路径",sep='\t',index=False)
'''
例如: columns = ['sex','age']
data = [['f',18],['m',20]]
csv文件为
    sex     age
0   f       18
1   m       20
'''
# 写入excel文件,将to_csv更改即可
info.to_excel("xxx.xlsx")

随心所至