前言:
目前兄弟们对“python读取文件指定行”可能比较注意,你们都想要学习一些“python读取文件指定行”的相关内容。那么小编在网摘上汇集了一些关于“python读取文件指定行””的相关资讯,希望兄弟们能喜欢,你们快快来学习一下吧!工具&环境
Spyder version: 5.1.5 None
Python version: 3.7.9 64-bit
Operating System: Windows 10
说明:数据为自动生成,可根据自己实际数据套用程序
引言
又是一年,师姐马上毕业。
工作交接,半成品的数据分析结果留下一大堆。
其中有一部分数据长这样:
有N个CSV文件,每个文件中有超50万行,N列数据。
需求
获取N个格式相同文件中指定的某(几)列,如上述数据中B列(学号),C列(评分),并生成各自相应文件如下:
代码实现
# -*- coding: utf-8 -*-"""Created on Wed Apr 6 11:11:00 2022@author: gaopu"""import pandas as pdimport datetimeimport csvimport osdir= "文件所在路径" #指定读取文件列--- 0:第1列 1:第2列select_col=[1,2]excel_list = [os.path.join(dir, i) for i in os.listdir(dir) if i.endswith('.csv')]for file_path in excel_list: start_time = datetime.datetime.now() file_info =pd.read_csv(file_path,usecols=select_col) #file_info = pd.read_table(file_path,usecols=select_col) file_info.to_csv(file_path+"filter.txt",index=False, sep="\t", quoting=csv.QUOTE_NONE,header=True) print(datetime.datetime.now()-start_time)
核心代码讲解
—
1、子文件获取(筛选指定文件)
endswith('.csv')
这里'.csv'可以更换其他,如:'.txt'
excel_list = [os.path.join(dir, i) for i in os.listdir(dir) if i.endswith('.csv')]
2、读取文件内容,指定某(几)列
如果第一步为过滤使用了'.txt'
那么,
file_info =pd.read_csv(file_path,usecols=select_col)
pd.read_csv需要修改成pd.read_table
3、select_col=[1,2]
数组中1,2是列索引(角标), 从0开始为第一列,依次递增。
如果想要获取第4、6、7列,那么这里改成[3,5,6]即可
结果:
我在代码中添加了时间戳计算,可以看出每个文本处理时间0.8s左右,速度可以接受。
文件输出:
file_info.to_csv(file_path+"filter.txt",index=False, sep="\t", quoting=csv.QUOTE_NONE,header=True)
第1个参数是文件输出路径和名称,
sep="\t"参数是列之间数据以制表符分割,此处可更改为自己特定分隔符。
上面代码可以直接拿来即用哟!
文末
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。——彭端淑《为学一首示子侄》
标签: #python读取文件指定行