python读文件

岁酱吖の 提交于 2019-11-29 00:39:36

1.open

with open(‘1.txt’, ‘r’) as f:
print(f.readlines())

  1. read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。

  2. readlines() 一次读取整个文件,readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for … in … 结构进行处理。

  3. readline() 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。

  4. 注意:这三种方法是把每行末尾的’\n’也读进来了,它并不会默认的把’\n’去掉,需要我们手动去掉。

with open(‘test1.txt’, ‘r’) as f1:
list1 = f1.readlines()
In[3]: list1
Out[3]: [‘111\n’, ‘222\n’, ‘333\n’, ‘444\n’, ‘555\n’, ‘666\n’]

去掉’\n’

with open(‘test1.txt’, ‘r’) as f1:
list1 = f1.readlines()
for i in range(0, len(list1)):
list1[i] = list1[i].rstrip(’\n’)
In[5]: list1
Out[5]: [‘111’, ‘222’, ‘333’, ‘444’, ‘555’, ‘666’]

2.pandas

  • pd.read_csv(filepath):从 CSV 文件导入数据
  • pd.read_table(filepath):从限定分隔符的文本文件导入数据
  • pd.read_excel(filepath):从 Excel 文件导入数据
  • pd.read_sql(query, connection_object):从 SQL 表 / 库导入数据

pd.read_csv

  • 读取从hive中导出的文件
    按标签分为多列,hive默认的分隔符为‘\001’
    若不加sep,默认按,分隔
data=pd.read_csv(r'D:\Users\Administrator\Desktop\data.txt',sep='\001',header=None,names=['id','title','content','summary','label'])

常见错误

  • OSError: Initializing from file failed
    出现这个错误的原因很可能是你的路径名中带有中文
    解决
data = pd.read_csv('人效日报-20180701.csv', skiprows=1, header=None, engine='python')

原文链接:https://blog.csdn.net/zhangzh296/article/details/89584865

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!