在Python中删除文件行

2024-01-06

我正在尝试创建一个接受用户名和高分的程序,如果他们已经是用户,他们会更新到新的高分,或者如果不是,则仅添加高分。

我的代码是:

try:
    a = open("data", "r+")
except FileNotFoundError:
    a = open("data", "w")
a = open("data", "r+")
b = a.read()
user = input("Username: ")
user2 = list(user)
if user in b:
    old = input("What is your old highscore? ")
    new = input("What is your new highscore? ")
    b2 = b.split()
    for line in b2:
        #Where I want to edit.
        line=line.replace(old, new)
        print(line)

else:
    new = input("What is your highscore? ")
    a.write(user + " " + new + "\n")
a.close()

有谁知道如何用文件中的新内容替换旧内容?


简单的答案是:不可能。操作系统及其文件操作没有“行”的概念。它们处理二进制数据块。一些库(例如 Python 的标准库)为reading上面的行 - 但它们不允许您寻址单独的行。

那么如何解决问题呢?只需打开文件,读取所有行,就地操作有问题的行,然后写入whole再次归档。

 import tempfile

 highscore_file = tempfile.mktemp()

 with open(highscore_file, "w") as outf:
     outf.write("peter 1000\nsarah 500\n")

 player = "sarah"
 score = 2000

 output_lines = []
 with open(highscore_file) as inf:
     for line in inf:
         if player in line:
             # replace old with new line. Don't forget trailing newline!
             line = "%s %i\n" % (player, score)
         output_lines.append(line)

 with open(highscore_file, "w") as outf:
     outf.write("".join(output_lines))



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

在Python中删除文件行 的相关文章

  • python future 和元组解包

    实现像使用 future 进行元组解包这样的事情的优雅 惯用的方法是什么 我有这样的代码 a b c f x y g a b z h y c 我想将其转换为使用期货 理想情况下我想写一些类似的东西 a b c ex submit f x y
  • FileNotFoundException:/存储/模拟/0/Android

    我尝试这个文件写入器 读取器代码段进行测试 File file new File Environment getExternalStorageDirectory LM lm lisdat 01 txt FileOutputStream ou
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • 在 Tensorflow tf.nn.nce_loss 中出现 TypeError:'Mul' Op 的输入 'y' 的类型为 float32,与参数 'x' 的 int32 类型不匹配

    我正在研究 Tensor Flow 中的 Bag of Words 实现 并得到了 类型错误 Mul Op 的输入 y 的类型为 float32 与参数 x 的 int32 类型不匹配 在 tf nn nce loss 中 我尝试查看 tf
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • 使用 OLS 回归预测未来值(Python、StatsModels、Pandas)

    我目前正在尝试在 Python 中实现 MLR 但不确定如何将我找到的系数应用于未来值 import pandas as pd import statsmodels formula api as sm import statsmodels
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li

随机推荐

  • 在临时表/变量中:将多行连接到只有 1 行的表

    Hi 我有一个将临时变量与临时表连接的小问题 任何意见将不胜感激 我按照我尝试解决问题的顺序来呈现问题 首先 我有一个从 select 语句创建的临时变量 变量 enhet 有 2 行 观察 在我的测试文件中 稍后会更多 declare e
  • 如何为所有延迟加载模块提供自定义提供程序

    我在我的应用程序中使用子组件的延迟加载策略 在应用程序的顶层 我有自定义 HTTP 提供程序来拦截所有 ajax 调用 providers provide Http useFactory backend XHRBackend default
  • 仅适用于字符 a-z、A-Z 的正则表达式

    我不知道如何在 JavaScript 或 jQuery 中创建正则表达式 我想创建一个正则表达式来检查字符串是否仅包含 a z 和 A Z 之间的任意排列的字符 EDIT 当我尝试制作正则表达式时 a zA Z s 也接受空格 它不起作用
  • 如何知道要使用哪个版本的类型包

    我知道一些 npm 包不包含类型 并且由于社区创建了 types packagename 来提供类型 由于两者都是包 如何知道哪个版本的类型包与所选版本的库包一起使用 主要版本号和次要版本号 types packagename包将匹配的主要
  • 我应该始终检查成员指针是否为 nullptr?

    做这样的事情是不是很糟糕 在对对象指针进行操作之前 不检查draw 函数内部是否有nullptr class SomeClass public SomeClass Object someValidObject object someVali
  • Scala:删除最后一次出现的字符

    我正在尝试删除字符串中最后一次出现的字符 我可以得到它的index str lastIndexOf 我已经尝试过使用split和replace字符串上的函数 你可以使用patch scala gt val s s dfkj w erw s
  • Javascript for...of 在 Safari 中不起作用

    目前 我正在尝试构建一个简单的侧面导航 只要单击 toggleSidenav 按钮之一 有多个 该导航就会出现 消失 在使用 Firefox 和 Chrome 进行测试时 它似乎工作正常 但今天当我尝试使用 Safari 桌面版和移动版 打
  • Docker 组合 |虚拟主机

    我的代码有什么问题吗 提前致谢 我正在尝试为我的 docker 容器设置虚拟主机 在 localhost 8000 上工作正常 但是当我尝试通过 http borgesmelo local 访问时 出现错误 ERR NAME NOT RES
  • OpenGL 中的恒定游戏速度与 GLUT 中的可变 FPS 无关?

    我一直在读科恩 维特斯详细文章 http www koonsolo com news dewitters gameloop 关于不同的游戏循环解决方案 但我在使用 GLUT 实现最后一个解决方案时遇到了一些问题 这是推荐的解决方案 在阅读了
  • 如何编写 CSS 选择器来选择不具有特定属性的元素?

    如何编写 CSS 选择器来选择不具有特定属性的元素 我有2个 div 节点如下 First div class weEq5 div div
  • Chrome 时间线 - 如何确定“重新计算样式”日志条目的原因?

    使用 Chrome 中的内置时间线记录器分析页面时 我看到重复的 重新计算样式 条目 它们没有明显的信息将它们链接到 DOM 元素或事件 我怎样才能最好地确定这些条目的原因 已发布的用于调查的 jQuery 版本的替代方案是控制台中的简单一
  • 为什么会出现 TypeError: 'str' object不能被解释为整数?

    我正在做OrderedDict的练习 我正在尝试使用 input rsplit 方法为字典分配值 发生了一个错误 名为 TypeError str 对象无法解释为整数 我哪里搞错了 from collections import Order
  • 在生产环境中使用代码优先降级(回滚)数据库

    我有一个网络应用程序 安装在客户的计算机上供他们内部使用 我使用 C MVC5 和代码优先的实体框架 我使用了自动迁移 true 但我停止并将其设置为 false 我将其安装在生产环境 发行版 上 使用部署包 无 Visual Studio
  • TailwindCSS中的transition-all和transition有什么区别

    Tailwind 提供了多个实用程序来控制 CSS 属性转换 其中有transition and transition all 我检查了这两个类的 CSS 属性 这里它们的顺序相同 transition property backgroun
  • 检测声音是否在 Selenium 中播放

    我在我正在开发的项目的 iframe 中加载了一些第三方网站 但我需要以某种方式检测这些网站是否正在播放任何声音 我没有看到任何使用 WebDriver 的方法来查看浏览器中是否正在播放声音 是否有其他方法来查询虚拟机本身 在现代 HTML
  • 如何通过 decltype 声明迭代器的值

    在 C 98 中 我通常使用以下代码来声明迭代器值类型中的变量 typename std iterator traits
  • 在 python 中对局部变量使用显式 del

    使用显式的最佳实践和建议是什么delpython 中的语句 我知道它用于删除属性或字典 列表元素等 但有时我看到它在代码中的局部变量上使用 如下所示 def action x result None something produce so
  • Go数组初始化

    func identityMat4 16 float return 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 我希望你能从这个例子中明白我想要做什么 我如何在 Go 中执行此操作 func identityMat4 1
  • 递增:x++ 与 x += 1

    我读到 为了清楚起见 许多开发人员使用 x 1 而不是 x 我知道 x 对于新开发人员来说可能会含糊不清 而 x 1 总是更清晰 但是两者之间的效率有什么区别吗 使用 for 循环的示例 for x 0 x lt 1000 x 1 vs f
  • 在Python中删除文件行

    我正在尝试创建一个接受用户名和高分的程序 如果他们已经是用户 他们会更新到新的高分 或者如果不是 则仅添加高分 我的代码是 try a open data r except FileNotFoundError a open data w a