python 遍历文件中的行

2024-04-26

我见过这两种处理文件的方法:

file = open("file.txt")
for line in file:
    #do something

file = open("file.txt")
contents = file.read()
for line in contents:
    # do something

我知道在第一种情况下,文件将像一个列表一样,所以for循环遍历文件,就像它是一个列表一样。在第二种情况下到底发生了什么,我们读取文件然后迭代contents?采取每种方法的后果是什么?我应该如何在它们之间进行选择?


在第一个中,您将逐行迭代文件。在这种情况下,整个文件数据不会一次性读入内存;相反,仅将当前行读入内存。这对于处理非常大的文件很有用,并且在您不知道文件是否会很大时也有利于鲁棒性。

在第二个中,file.read()以字符串形式返回完整的文件数据。当您对其进行迭代时,您实际上是在逐个字符地迭代文件的数据。这会将完整的文件数据读取到内存中。

下面是一个展示此行为的示例。

a.txt文件包含

Hello
Bye

Code:

>>> f = open('a.txt','r')
>>> for l in f:
...     print(l)
...
Hello

Bye


>>> f = open('a.txt','r')
>>> r = f.read()
>>> print(repr(r))
'Hello\nBye'
>>> for c in r:
...     print(c)
...
H
e
l
l
o


B
y
e
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 遍历文件中的行 的相关文章

  • 了解 Beautiful Soup 中的 Find() 函数

    我知道我想做的事情很简单 但这让我感到悲伤 我想使用 BeautifulSoup 从 HTML 中提取数据 为此 我需要正确使用 find 功能 这是我正在使用的 HTML div class audit div class profile
  • python http 客户端卡在 100 continue

    我在 python 中有一个简单的 http 服务器 它使用 100 continue 实现 PUT class TestHandler SimpleHTTPRequestHandler def do PUT self length int
  • 单元测试 python 代码,其中 configparser 从配置文件中读取

    我是 python 单元测试的新手 我学习并进行了示例单元测试 其中方法接受输入并返回输出 但对于下面提到的代码 我有一些疑问 如何在unittest中模拟init方法的configparser 路径 config program cfg
  • lxml 中的通配符命名空间

    如何使用 xpath 忽略 xml 命名空间进行查询 我正在使用 python lxml 库 我尝试了以下解决方案this https stackoverflow com questions 13463871 xpath selecting
  • 使用 scikit 确定每个特征对特定类别预测的贡献

    我正在使用 scikit 额外的树分类器 model ExtraTreesClassifier n estimators 10000 n jobs 1 random state 0 一旦模型拟合并用于预测类别 我想找出每个特征对特定类别预测
  • 自 1.4.0 版本以来,sphinx_rtd_theme 不再是硬依赖项

    C Users Administrator Desktop item code serv documents api gt 制作 html 运行 Sphinx v1 6 2 加载腌制环境 失败 无法获取属性 WarningStream
  • 如何在Python中每次运行脚本时增加变量?

    我有一个 Python 脚本 我想在每次运行时增加一个全局变量 这可能吗 使用外部文件很容易做到这一点 您可以创建一个函数来为您执行此操作 这样您就可以根据需要将多个文件用于多个变量 尽管在这种情况下您可能想要研究某种序列化并将所有内容存储
  • SQLAlchemy 闭包表关系定义

    我最近开始使用 SQL Alchemy 开展一个涉及攀岩区域和路线的项目 区域是分层的 因为单个区域可以包含多个区域 而多个区域又可以包含其他区域 路线直接与单个区域关联 但也与该区域的父区域关联 等等 为了实现这一点 我选择使用Bill
  • 如何使用Python3将ruamel.yaml转换为dict?

    我想要一个dict or OrderedDict from ruamel yaml 我正在使用 Python 3 8 如果有帮助的话 很乐意切换到 3 9 from ruamel yaml import YAML from collecti
  • Python:合并嵌套列表

    初学者在这里 我有 2 个要合并的嵌套列表 list1 a b c d e f g h list2 p q r s t u v w 我正在寻找的输出是 list3 a p q b c r s d e t f g h u v w 这可以在没有
  • Bokeh 相当于 matplotlib 子图

    我正在寻找一种方法来创建包含多个子图的绘图 例如 fig ax0 ax1 plt subplots nrows 2 sharex True 可以在 matplotlib 中完成 然后可以通过以下方式解决ax0 and ax1 有没有办法在
  • Keras AttributeError:“顺序”对象没有属性“predict_classes”

    我试图按照本指南找到模型性能指标 F1 分数 准确性 召回率 https machinelearningmastery com how to calculate precision recall f1 and more for deep l
  • chrome_options.binary_location() TypeError: 'str' 对象不可调用

    我希望每个人都好 我是 python 新手 我尝试运行这段代码 但我不明白问题是什么以及如何解决这个问题 我的代码是 from selenium import webdriver from time import sleep url raw
  • 使用数据库数据模型生成 SQLAlchemy 模型、架构和 JSON 响应

    将 Flask 和 SQLAlchemy 用于 Python Web 应用程序 我的目标是创建一个系统 在其中我可以 从现有 PostgreSQL 数据库导入数据模型 并将它们映射到相应 SQLAlchemy 模型中的字段 使用这些 SQL
  • 对seaborn图中的分类x轴进行排序

    我正在尝试使用 seaborn 散点图绘制数据框中前 30 的值 如下所示 同一图的可重现代码 import seaborn as sns df sns load dataset iris function to return top 30
  • 在 matplotlib 中查看然后自动关闭图形?

    我必须检查我的参数设置是否正确 因此我需要绘制许多图 为了绘制这些图 我选择使用 matplotlib 每次检查后 我需要单击左上角的关闭按钮 这很微不足道 那么有没有什么方法可以让剧情在3 5秒左右显示并且无需点击就自动关闭呢 我知道关于
  • PySide2/QML 填充 Gridview 模型/委托并为其设置动画

    我是 QML 的新手 正在寻求以下几点帮助 如何基于 TextField 输入 如 Regex 通过 PySide2 过滤 Gridview 模型中的 QAbstractListModel 数据 标题 如何在鼠标悬停时为 Gridview
  • Pytest 插件:覆盖 pytest_runtest_call 和朋友

    我正在为我的一个项目使用 pytest 开发一个测试套件 由于项目的性质 我需要创建一个 Pytest 插件来控制测试的运行方式 它们不是在本地运行 而是发送到不同的进程来运行 我知道关于xdist但我认为这并不能解决我的问题 我一直在通过
  • 在 matplotlib 中添加新的导航模式

    我正在编写一个 wx matplotlib 应用程序 并且在向 matplotlib 导航工具栏添加新工具时遇到相当大的困难 基本上我想添加选择工具 选取框 套索等 以切换受控子图的鼠标模式 到目前为止 我还没有找到任何功能可以让我轻松地做
  • 在 python 中将数组作为参数传递

    我是Python新手 现在我需要声明大小为 20 的数组并将该数组传递给函数 需要数组的函数如下 function args The args是一个输入function 谁能帮我 如何在 python 中传递数组 当你说 数组 时 我假设你

随机推荐

  • 如何使用 Xerces 同时使用 Maven 从 XSD 1.1 生成源

    我有一个带有断言标签的 XSD 文件 我读到 Xerces 支持带有这些标签的 XML Schema 1 1 草案 如何在我的 Maven 构建中使用实际的 Xerces 版本 而不是标准 Java 实现 使用 Xerces 版本的一种旧方
  • config_cache_enabled 错误

    使用 Zend 框架 2 1 当我设定 config cache enabled gt true在我的里面application config php 它返回以下错误 Warning var export does not handle c
  • 使用 SessionBean EJBObject 和 EJBHome 接口创建 EJB

    我对创建 EJB 感到困惑 我在互联网上看到了许多 EJB 示例 也看到了使用 SessionBean EJBObject 和 EJBHome 接口开发 EJB 的示例项目 在其他一些示例中 EJB 是在没有这些接口的情况下创建的 并且仅使
  • 如何获取数组中每个数字的阶乘值?

    我试图使用此方法获取数组中每个项目的阶乘值 但这仅输出一个值 任何人都可以帮助我找出我做错的地方吗 function mathh arr fn for i 1 i lt sizeof arr i arr2 arr2 i fn arr i r
  • 如何在 Jackson 和 Gson 之间转换日期?

    在我们的 Spring 配置的 REST 服务器中 我们使用 Jackson 将对象转换为 Json 该对象包含几个 java util Date 对象 当我们尝试使用 Gson 的 fromJson 方法在 Android 设备上反序列化
  • 如何在CSS中捏住一行的中间

    我正在尝试制作一条看起来几乎在末端有衬线的线条 本质上 我想让它在最末端变宽 在中间变细 只需使用 css 这实际上被证明是一个相当大的挑战 任何帮助 将不胜感激 到目前为止 我已经能够了解我想要如何使用 after伪选择器 但顶部没有运气
  • 如何使用shoulda匹配器来测试多态关联?

    我正在使用带有rails的shoulda matchers 并创建一个名为 comments 的模型和另一个名为 post 的模型 评论是多态的 当我在这样的帖子中使用 shoulda 匹配器进行测试时 it should have man
  • 导入错误:没有名为“编码”的模块

    我最近重新安装了ubuntu并升级到16 04并且无法使用python python manage py runserver Could not find platform independent libraries
  • 将 Azure CDN 与共享访问签名结合使用

    我正在尝试合并 Azure 来存储应用程序的大部分文件 我想将这些文件上传到 azure 中的私有容器和私有 blob 并通过 Azure CDN 将这些上传内容复制到所有其他节点 仍然作为私有容器和 blob 然后 我希望我的应用程序向存
  • “from Six.moves import urllib”在 Python 中做什么?

    我在 Python 代码中发现了以下行 from six moves import urllib 同时 我可以找到urllib py任何地方 我发现有一个文件six py在包根目录中 它有class Module six moves url
  • 在 R 中查找观察值之间的时间差

    我正在尝试确定两次观察之间的时间差 数据由不同的个人分解 每个人都有自己唯一的 ID 我有一个数据集 它告诉我每次状态发生变化时他们的状态会更新什么 以及他们的状态何时发生变化 状态可以是两个值之一 并且它总是更改为它不是的值 在本例中 从
  • C# 中的可选数组参数[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中传递一个空数组作为可选参数的默认值 https stackoverflow com questions 3480382 passing an empty array as default v
  • 比特币客户端如何确定第一个连接的IP地址?

    据我所知 比特币是一种 p2p 协议P2P协议必须有一个专用的中央服务器 https stackoverflow com questions 310607 peer to peer methods of finding peers 但据说比
  • 如何完善这个FTP(shell)功能?

    我有大量使用以下函数的脚本 Copies files over using FTP Configurations set at the beggining of the script param 1 FTP Host 2 FTP User
  • 如何在 swiftui 中使用 .quickLookPreview 修饰符

    我正在尝试使用视图修饰符 quickLookPreview在 iOS 14 macOS 11 macCatalyst 14 中引入 但我收到此错误Value of type some View has no member quickLook
  • 在 Firefox 上使用 popState 平滑滚动和返回按钮 - 需要单击两次

    我正在尝试实现一个小代码 当我单击锚点时 并且锚点名称出现在动画之后 我可以使用它实现平滑滚动 并且如果我按下浏览器的后退按钮 我想返回到页面顶部并更新 URL 不带 anchor 名称 这是代码 function Smooth scrol
  • 无法更新 Android Studio 中的 JDK 位置

    我无法在 Android Studio 中更新 Java JDK 或 Android SDK 路径 要更新默认的 JDK 或 Android SDK 打开Android Studio 转到快速启动 gt 配置 gt 项目默认值 gt 项目结
  • 画布绘制文本定位

    我正在创建一个绘图工具 用户可以在其中向图像添加文本 当通过画布位置将文本绘制到位图时 未正确设置 Paint paint new Paint paint setStyle Paint Style FILL paint setColor C
  • 如何使用没有按钮的 jQuery UI 图标?

    jQuery UI 带有一些很好的图标 没有按钮我该如何使用它们 让我们说一下如何创建链接plus签名并通过更改图标对悬停和单击做出反应 Here http jsfiddle net and7ey gZQzt 是仅添加图标的演示 Upd 1
  • python 遍历文件中的行

    我见过这两种处理文件的方法 file open file txt for line in file do something file open file txt contents file read for line in content