栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python读入数据总结大全

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python读入数据总结大全

目录

碎碎念

1、使用python内置函数open

1.1 对于txt

1.1.1 按行读入,每行作为列表的一个元素


碎碎念

读入数据,都是最基本的东西了,但是我发现老是不会用,而且都没有对各种数据类型进行一个总结,以至于每次读入数据,都需要再去网上搜集代码,浪费时间。因此作为一个初学python的人,我决定自己给自己总结一篇读入数据的文章。

1、使用python内置函数open

1.1 对于txt

一般来说,txt格式的数据,都会有很多行,每一行存储一个数据。

比如我的这个数据:

人生如逆旅
我亦是行人
人生何处不相逢
何事秋风悲画扇

我经常需要的格式一般都是列表,每行作为列表的一个元素存在。

1.1.1 按行读入,每行作为列表的一个元素

通过f.read().splitness(),首先把数据整体读入,然后再拆分。

通过以下代码可以将数据读入,存到一个列表里,并且每一行作为列表的一个元素。

with open('importdata.txt', 'r', encoding='utf-8')as f:
    raw_data = f.read().splitlines()
print(raw_data)

结果如下所示:

['人生如逆旅', '我亦是行人', '人生何处不相逢', '何事秋风悲画扇']

通过f.readlines()读入,这种方式的重点在于怎么去除换行符'n'.

首先如果直接使用.readlines()的方式读入:

with open('importdata.txt', 'r', encoding='utf-8')as f:
    raw_data_1 = f.readlines()
print(raw_data_1)

结果就是带n的:

['人生如逆旅n', '我亦是行人n', '人生何处不相逢n', '何事秋风悲画扇']

我们并不需要换行符n,如何去掉呢?可以通过str.replace()和str.strip()的方式去掉,如以下代码所示:

with open('importdata.txt', 'r', encoding='utf-8')as f:
    raw_data_1 = [word.strip('n') for word in f.readlines()]
print(raw_data_1)

with open('importdata.txt', 'r', encoding='utf-8')as f:
    raw_data_2 = [word.replace('n', '') for word in f.readlines()]
print(raw_data_2)

这两个方法都可以去除掉'n'。

还有一个重磅方法,就是先依然用.read()方法全部读入,然后对文本进行整体处理,比如全部小写,去除标点符号等,再使用.split方法用换行符把它们转换为列表。

文本内容:

I like China.
Whatever your past has been, you have a spotless future.
Life is a load of running, it is necessary to constantly in each choose a fork in the road.
Don't fear you forsake, just afraid of losing you.

with open('importdata.txt', 'r', encoding='utf-8')as f:
    data = f.read().lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~':
    data = data.replace(ch, " ")
raw_data = data.split('n')
print(raw_data)

结果就是这样的,也是一个列表,列表里的每个元素就是txt文件里的每行

['i like china ', 'whatever your past has been  you have a spotless future ', 'life is a load of running  it is necessary to constantly in each choose a fork in the road ', "don't fear you forsake  just afraid of losing you "]

那为什么要这么做呢?因为我发现如果我们要对文本进行大小写,以及删除标点符号等处理的话,都要使用字符串的方法。因此如果我们使用readlines()方法直接将文件存储为列表的话,又得通过.join等方式转换为字符串,完了再转换为列表,这岂不是来回折腾嘛。

因此我觉得可以先以字符串的形式完成初步处理,再通过.split()方法切割为列表。

那么.strip()和.replace()具体什么意思呢?明天写......

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971561.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号