Python如何从文件中读取数据

news2024/9/30 21:25:21

从文件中读取数据

1. 读取整个文件

要读取文件,首先来创建一个文件:

然后打开并读取这个文件,再将其内容显示到屏幕上:

file_reader.py
with open('pi_digits.txt') as file_object:
    contents = file_object.read()
    print(contents)

解读上述代码:

open( ) -> 要以任何方式使用文件,都首先得打开文件,这样才能访问它,此时就需要用到函数open(),该函数只接受一个参数:要打开文件的名称,同时返回表示文件的对象。

with: 不再需要访问文件后调用 close( ) 将其关闭。

read( ) ->读取文件中的全部内容。

运行结果:

3.1415926535
  8979323946
  2643383278

2. 文件路径

要让python打开不与程序文件位于同一目录中的文件,需要提供文件路径,让python到系统的特定位置去查找。

文件路径的表示:

1. 相对路径 -> 文件相对于当前运行程序所在的目录。eg. 在程序所在文件夹C:\Users\yxf\Desktop\python_pycharm新建一个文件夹text_file用于存储文件pi_digits.txt,此时就需要这样编写代码:

with open('text_files\pi_digits.txt') as file_object:

2. 绝对文件路径 -> 文件所在完整路径。绝对路径比相对路径更长,故可将路径存储在一个变量中,再将变量传递给 open( ):

file_path = r'C:\Users\yxf\Desktop\python_pycharm\text_files\pi_digits.txt'
with open(file_path) as file_object:

由于文件路径中使用的是反斜杠,在python中被视为转义字符,故需要在开头的单引号前加上r。

3. 逐行读取

每次以一行的方式检查文件:

file_name = 'pi_digits.txt'
with open(file_name) as file_object:
    for line in file_object:
        print(line)

 运行结果:

3.1415926535
  8979323946
  2643383278

通过对文件对象使用for循环来遍历文件中的每一行,但运行结果显示的每一行后边多了空白行,这是为什么呢?文件中每行的末尾都有一个看不见的换行符,而print语句也会加上一个换行符。为消除这些空白行,可在print语句中使用 rstrip( ):

print(line.rstrip())

这样输出与文件内容就完全相同了。

4. 创建一个包含文件各行内容的列表

file_name = 'pi_digits.txt'
with open(file_name) as file_object:
    lines = file_object.readlines()
for line in lines:
    print(line.rstrip())

方法readlines():从文件中读取每一行,并将其存储在列表中。

5. 使用文件的内容

file_name = 'pi_digits.txt'
with open(file_name) as file_object:
    lines = file_object.readlines()    # 将文件内容存储在列表中
pi_string = ''    # 新建一个空字符串
for line in lines:
    pi_string = pi_string + line.rstrip()    # 删除空白行并转换为字符串
print(pi_string)    # 打印字符串
print(len(pi_string))    # 打印字符串长度

运行结果:

3.1415926535  8979323946  2643383278
36

 运行结果中包含了位于每行左边的空格,为删除这些空格,可使用 strip() 而不是 rstrip(),运行可得:

3.141592653589793239462643383278
32

6. 包含一百万位的大型数据

一百万位的文件下载过慢,就复制使用了其中的一小部分,并打印到小数点后的50位:

file_name = 'pi_xx_digits.txt'
with open(file_name) as file_object:
    lines = file_object.readlines()  # 将文件内容存储在列表中
pi_string = ''  # 新建一个空字符串
for line in lines:
    pi_string = pi_string + line.strip()  # 删除空白行并转换为字符串
print(pi_string[: 52])  # 打印字符串
print(len(pi_string))  # 打印字符串长度

运行结果:

3.14159265358979323846264338327950288419716939937510
1483

由运行结果可知保存了小数点后的1481位在文件 pi_xx_digits.txt 中。

7. 圆周率中包含你的生日吗

可以检测圆周率值的前1483位中是否包含自己的生日:

file_name = 'pi_xx_digits.txt'
with open(file_name) as file_object:
    lines = file_object.readlines()
pi_string = ''
for line in lines:
    pi_string = pi_string + line.strip()
birthday = input('Enter your birthday, in the form mmddyy: ')
if birthday in pi_string:
    print('Your birthday appears in the first 1483 digits of pi!')
else:
    print('Your birthday does not appears in the first 1483 digits of pi.')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1283292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创新、升级丨数据手套FOHEART Pro开启手势识别新篇章!

在人机交互领域,我们始终追求更加自然、逼真的体验。正如现实生活中,我们习惯于通过语言和表情来传达思想和情感,然而,在虚拟世界中,人机交互需要以更加直观、生动的方式进行操作、控制和交互。 为了更好地满足市场的…

Elasticsearch:评估 RAG - 指标之旅

作者:Quentin Herreros,Thomas Veasey,Thanos Papaoikonomou 2020年,Meta发表了一篇题为 “知识密集型NLP任务的检索增强生成” 的论文。 本文介绍了一种通过利用外部数据库将语言模型 (LLM) 知识扩展到初始训练数据之外的方法。 …

如何使用Access中的窗体与数据打交道,看这篇文章就够了

Access数据库由一个或多个包含相关信息的表组成。一旦创建了这样一个空数据库,就可以遍历所有的表来填充信息。 然而,这可能会变得乏味和混乱。当你试图输入数据时,很难遵循表中数据之间的关系。访问输入窗体是一个很有价值的工具。你可以设计输入窗体,以便以逻辑格式输入…

python读取所有sheet内容到另一个文件中

实现效果: 将原excel中的步骤、预期效果列按回车拆成多行数据,其余字段值填充其他数据 实现结果: # This is a sample Python script.# Press ShiftF10 to execute it or replace it with your code. # Press Double Shift to search everyw…

单目相机测距(3米范围内)二维码实现方案(python代码 仅仅依赖opencv)

总体思路:先通过opencv 识别二维码的的四个像素角位置,然后把二维码的物理位置设置为 cv::Point3f(-HALF_LENGTH, -HALF_LENGTH, 0), //tl cv::Point3f(HALF_LENGTH, -HALF_LENGTH, 0), //tr cv::Point3f(HALF_LENGTH, HALF_LENGTH, 0), //br cv::P…

我有才满足于自媒体行业的知识付费平台课程

用户管理 提供会员特权和积分奖励,提高用户忠诚度和购买力。 用户通过在平台上进行消费、签到、参与活动等方式获取积分,用于兑换丰厚奖品或提升会员等级。增强用户的参与感与忠诚度,提高用户粘性,并刺激用户的购买力。 为用户打…

3.镜像加速器

目录 1 阿里云 2 网易云 从网络上拉取镜像的时候使用默认的源可能会慢,用国内的源会快一些 1 阿里云 访问 阿里云-计算,为了无法计算的价值 然后登录,登录后搜索 容器镜像服务 点击容器镜像服务 点击管理控制台 点击 镜像工具->镜像…

vue3 vue-cropper@next 实现图片裁切功能

Vue Cropper 实现上传图片预览&#xff0c;裁切上传效果 下载 pnpm add vue-croppernext使用 <template><inputref"inputRef"class"hidden"accept".png,.jpeg,.jpg"multipletype"file"change"handleUploadChange&quo…

基于ssm实现的工资管理系统

一、系统架构 前端&#xff1a;jsp | jquery | layui 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及截图 三、功能介绍 01. 登录页 02. 首页 03. 用户管理-基本资料 04. 用户管理-修改密码 05. 人事管理-部门列表…

Leetcode—409.最长回文串【简单】

2023每日刷题&#xff08;四十八&#xff09; Leetcode—409.最长回文串 强烈吐槽&#xff01;&#xff01;&#xff01; 非常不理解&#xff0c;同样的代码&#xff0c;为什么C跑不了C就跑得了&#xff0c;力扣编译器是对C语言有歧视吗&#xff1f;&#xff1f;&#xff1f;…

【springboot原理篇】Bean的加载方式,面试必看

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、上古时代原始方式&#xff1a; &#x1f4d5;XML文件 ~~bean定义 &#x1f440;演示获取bean&#xff1a; ❌缺点&#xff1a; &#x1f4d5;注解方式&#xff1a; ~~component ~~指定扫描路径&#…

如何使用 Oracle SQL Developer 连接 pgvector

如何使用 Oracle SQL Developer 连接 pgvector 1. 下载 postgresql 的 jdbc 驱动2. Oracle SQL Developer 配置第三方驱动3. Oracle SQL Developer 配置 postgres 连接 1. 下载 postgresql 的 jdbc 驱动 访问 https://jdbc.postgresql.org/download/&#xff0c;下载驱动&…

Linux部署HDFS集群前置准备

二、VMware准备Linux虚拟机 三、VMware虚拟机系统设置 &#xff08;一&#xff09;对三台虚拟机完成主机名、固定IP、SSH免密登陆等系统设置 1.配置固定IP地址 打开控制台&#xff0c;切换到root用户 su -修改主机名、IP地址 vim /etc/sysconfig/network-scripts/ifcfg-ens3…

Temu数据面板:Temu商家必备的数据分析工具

在Temu这个电商平台上&#xff0c;越来越多的商家意识到数据分析的重要性。数据分析可以帮助商家更好地了解店铺的运营情况&#xff0c;从而制定更有效的运营策略&#xff0c;提高销售业绩。而在这个过程中&#xff0c;Temu数据面板成为了一个不可或缺的工具。 先给大家推荐一款…

学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg

学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg Error: Unable to find a match: ffmpeg添加RPMfusion仓库安装SDL安装ffmpeg执行命令测试 Error: Unable to find a match: ffmpeg 添加RPMfusion仓库 yum install https://download1.rpmfus…

LLM之RAG实战(二):使用LlamaIndex + Metaphor实现知识工作自动化

最先进的大型语言模型&#xff08;LLM&#xff09;&#xff0c;如ChatGPT、GPT-4、Claude 2&#xff0c;具有令人难以置信的推理能力&#xff0c;可以解锁各种用例——从洞察力提取到问答&#xff0c;再到通用工作流自动化。然而&#xff0c;他们检索上下文相关信息的能力有限。…

CCF CSP认证 历年题目自练Day51

此题又丑又长可以直接从题目分析&#xff08;个人理解&#xff09;部分看 题目 试题编号&#xff1a; 201812-3 试题名称&#xff1a; CIDR合并 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 样例输入 2 1 2 样例输出 1.0.0.0/8 2.0.0.0/8 样例输入 2 10/9 10…

2022年9月26日 Go生态洞察:Go运行时4年后的进展

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

不瞒各位,不安装软件也能操作Xmind文档

大家好&#xff0c;我是小悟 作为搞技术的一个人群&#xff0c;时不时就要接收产品经理发过来的思维脑图&#xff0c;而此类文档往往是以Xmind编写的&#xff0c;如果你的电脑里面没有安装Xmind的话&#xff0c;不好意思&#xff0c;是打不开这类后缀结尾的文档。 打不开的话…

Web漏洞分析-SQL注入XXE注入(中上)

随着互联网的不断普及和Web应用的广泛应用&#xff0c;网络安全问题愈发引起广泛关注。在网络安全领域中&#xff0c;SQL注入和XXE注入是两个备受关注的话题&#xff0c;也是导致许多安全漏洞的主要原因之一。本博客将深入研究这两种常见的Web漏洞&#xff0c;带您探寻背后的原…