我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python中读取txt文件时split()函数的妙用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python中读取txt文件时split()函数的妙用

不知道大家有没有过需要从txt文件中读取含有多行多列的数据的经历,当我们读入数据时,数据会以string的形式被读入,然而如何进行数据类型转换就成了大的问题。

这里介绍一种最简单的方式和容易产生的错误使用方法。

txt测试文件中的数据如下

我们使用如下代码读取文件,使用readlines()一次性将所有数据全部读取。

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:
    all_data = f.readlines()
    print(all_data)
# ['6.317438621610765E-05  6.123920173773844E-05  0.00010382572761752979\n', '0.00010819194873178063  8.848784016828921E-05  0.0002043378699454479\n', '9.79660835582763E-05  9.750829986943346E-05  0.00021506758227284687']

我们不难发现这时我们的所有数据都被读入了同一行,但是内部有三个单引号括起来的部分,与我们测试数据中的三行吻合。

我们也可以看到,我们需要将这些数据分成单独的string,然后我们就可以使用例如float关键字对这些数据进行类型转换。

我们看到数据之间是通过空格来分开的。我们第一时间想到我们应该使用.split(" ")方法以空格将数据分开。

我们尝试以下代码

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:
    all_data = f.readlines()
    all_data = all_data[0].split(" ")
    print(all_data)
# ['6.317438621610765E-05', '', '6.123920173773844E-05', '', '0.00010382572761752979\n']

首先我们需要选取第一行,使用all_data[0],然后再使用split(" ")函数分开它们。

我们成功达到了目的,但是我们同时引入了""空字符串项和末尾处\n的隐患,很是棘手。

这么做我们就进入了误区。

正确地做法如下

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:
    all_data = f.readlines()
    all_data = all_data[0].split()
    print(all_data)
# ['6.317438621610765E-05', '6.123920173773844E-05', '0.00010382572761752979']

我们使用split()函数时不添加任何参数,这样就一次性去掉了""空字符串项和末尾处\n的隐患还同时分开了各个字符串。

如果需要输出多行的结果,我们可以预先定义一个数组,用来存放我们的数据,完整代码如下:(以后所有的多行多列数据均可以如此读入)

方法一:将数据以二维列表形式读入

array2d = []
with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:
    all_data = f.readlines()
    for i in range(len(all_data)):
        temp_list = []
        for element in all_data[i].split():
            temp_list.append(float(element))
        array2d.append(temp_list)

print(array2d)
#[[6.31743862e-05, 6.12392017e-05, 0.000103825728], 
# [0.000108191949, 8.84878402e-05, 0.00020433787], 
# [9.79660836e-05, 9.75082999e-05, 0.000215067582]]

方法二:将数据以二维数组形式读入

import numpy as np

array = np.zeros((3, 3))
with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:
    all_data = f.readlines()
    for i, line in enumerate(all_data):
        numbers = line.split()
        for j, element in enumerate(numbers):
            array[i, j] = float(element)

print(array)
# [[6.31743862e-05 6.12392017e-05 1.03825728e-04]
#  [1.08191949e-04 8.84878402e-05 2.04337870e-04]
#  [9.79660836e-05 9.75082999e-05 2.15067582e-04]]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python中读取txt文件时split()函数的妙用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android应用中如何实现读取项目中的txt文件

这篇文章给大家介绍Android应用中如何实现读取项目中的txt文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体如下:1. 众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个ra
2023-05-31

怎么用vbs读取Excel文件的函数

这篇文章主要介绍了怎么用vbs读取Excel文件的函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:Function ReadExcel( myXlsFile, m
2023-06-08

python怎么将txt文件的内容逐行读取转化成数组

本篇内容主要讲解“python怎么将txt文件的内容逐行读取转化成数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么将txt文件的内容逐行读取转化成数组”吧!将txt文件的内容逐
2023-07-05

python如何读取文件中的数据

Python中可以使用open()函数来读取文件中的数据。下面是一个基本的使用示例:```pythonfile = open("filename.txt", "r") # 打开文件,以只读模式读取data = file.read() #
2023-09-14

如何使用BufferedReader读取TXT文件中数值并输出最大值

本篇内容主要讲解“如何使用BufferedReader读取TXT文件中数值并输出最大值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用BufferedReader读取TXT文件中数值并输出
2023-06-22

使用Python怎么读取文件名中的数字

这期内容当中小编将会给大家带来有关使用Python怎么读取文件名中的数字,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几
2023-06-14

PHP中的fgets()函数用于逐行读取文件内容

PHP中的fgets()函数用于逐行读取文件内容在PHP中,我们经常需要读取文件的内容。而当文件内容较大时,一次性将整个文件读取到内存中可能会导致内存溢出的问题。为了避免这种情况,我们可以通过逐行读取文件的方式来处理文件内容。在PHP中,f
PHP中的fgets()函数用于逐行读取文件内容
2023-11-18

如何使用C#中的File.ReadAllText函数读取文本文件内容

如何使用C#中的File.ReadAllText函数读取文本文件内容在C#编程中,我们经常需要读取文本文件的内容。File.ReadAllText是一个非常方便的函数,可以帮助我们快速读取文本文件的全部内容。本文将介绍如何使用File.Re
如何使用C#中的File.ReadAllText函数读取文本文件内容
2023-11-18

Python中怎么使用open函数读写文件

本篇文章为大家展示了Python中怎么使用open函数读写文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/fin
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录