迭代目录中的所有文件并查找和替换文本 - Python

2023-12-05

宝贝全新。这是弗兰肯斯坦从几个类似的主题组合在一起的,其中没有一个似乎涵盖了在文件循环中嵌套查找和替换的必要步骤。

我试图迭代特定类型(此处列为“.LIC”)的文件夹中的每个文件(不是递归,我只有一个文件夹级别)并替换一小段文本。以下是我所能得出的最接近的结果:

import glob, os, fileinput
from glob import glob
root_dir = r"myPath"
os.chdir(root_dir)
    for file in glob, glob('*.LIC'):
    filename = str(file)
    with fileinput.FileInput(filename, inplace=True, backup='.bak') as file:
        for line in file:
            print(line.replace('findText', 'replaceText'),  end='')

正如你可以想象的那样,一切进展顺利。错误代码位于下面。

OSError                                   Traceback (most recent call last)
<ipython-input-61-e2fd0e9a5df9> in <module>()
      6     filename = str(file)
      7     with fileinput.FileInput(filename, inplace=True, backup='.bak') as file:
----> 8         for line in file:
      9             print(line.replace('findText', 'replaceText'), end='')
     10 

C:\Users\Me\Anaconda3\lib\fileinput.py in __next__(self)
    246     def __next__(self):
    247         while True:
--> 248             line = self._readline()
    249             if line:
    250                 self._filelineno += 1

C:\Users\Me\Anaconda3\lib\fileinput.py in _readline(self)
    333                     pass
    334                 # The next few lines may raise OSError
--> 335                 os.rename(self._filename, self._backupfilename)
    336                 self._file = open(self._backupfilename, self._mode)
    337                 try:

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '<function glob at 0x00000000013D3400>' -> '<function glob at 0x00000000013D3400>.bak'

我认为我的问题是嵌套对“文件”的引用,但我不确定如何解决这个问题。

感谢您提前的帮助。


你应该循环的结果glob而不是带有函数对象的元组glob:

for filename in glob('*.LIC'):
    with fileinput.FileInput(filename, inplace=True, backup='.bak') as file:
        for line in file:
            print(line.replace('findText', 'replaceText'),  end='')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迭代目录中的所有文件并查找和替换文本 - Python 的相关文章

  • Flask-SocketIO redis 订阅

    我在用着https github com miguelgrinberg Flask SocketIO https github com miguelgrinberg Flask SocketIO实现 WebSocket 服务器 我需要从另一
  • 在函数内的 for 循环上使用 tqdm 来检查进度

    我正在使用 for 循环迭代目录树内的一大组文件 这样做时 我想通过控制台中的进度条来监视进度 因此 我决定使用 tqdm 来实现此目的 目前 我的代码如下所示 for dirPath subdirList fileList in tqdm
  • 如何替换Python字符串中的正确字母

    任务是 您的任务是纠正数字化文本中的错误 您只需处理以下错误 S 被误解为 5 O 被误解为 0 I 被误解为 1 我的代码 def correct string for i in string if 5 in string string
  • 从内存地址创建python对象(使用gi.repository)

    有时我需要调用仅存在于 C 中的 gtk gobject 函数 但返回一个具有 python 包装器的对象 之前我使用过基于 ctypes 的解决方案 效果很好 现在我从 PyGtk import gtk 切换到 GObject intro
  • 如何在 Pandas Python 中按 id 对行进行排名

    我有一个像这样的数据框 id points1 points2 1 44 53 1 76 34 1 63 66 2 23 34 2 44 56 我想要这样的输出 id points1 points2 points1 rank points2
  • 如何通过 python 中的函数运行列表?

    我试图通过我创建的函数运行我的列表 但不断收到错误 我不知道出了什么问题 温度 F temp f 19 21 21 21 23 功能 def fahrToCelsius tempFahrenheit return tempFahrenhei
  • Python 不考虑 distutils.cfg

    我已经尝试了给出的所有内容 并且所有教程都指向相同的方向 即使用 mingw 作为 python 而不是 Visual C 中的编译器 我确实有 Visual C 和 mingw 当我想使用 pip 安装时 问题开始出现 它总是给Unabl
  • Python 内置对象的 __enter__() 和 __exit__() 在哪里定义?

    我读到每次使用 with 时都会调用该对象的 enter 和 exit 方法 我知道对于用户定义的对象 您可以自己定义这些方法 但我不明白这对于 打开 等内置对象 函数甚至测试用例是如何工作的 这段代码按预期工作 我假设它使用 exit 关
  • NSUserNotificationCenter.defaultUserNotificationCenter() 使用 PyInstaller 返回 None

    我正在尝试将通知发送到通知中心 Mac OSX 我正在使用 PyObjC 绑定来使用我们的 python 应用程序中的 cocoa api 我正在使用以下代码片段 import Foundation import objc NSUserNo
  • 会话数据库表清理

    该表是否需要清除或者由 Django 自动处理 Django 不提供自动清除功能 然而 有一个方便的命令可以帮助您手动完成此操作 Django 文档 清除会话存储 https docs djangoproject com en dev to
  • 我可以用关闭的文件对象做什么?

    当您打开文件时 它存储在一个打开的文件对象中 该对象使您可以访问该文件的各种方法 例如读取或写入 gt gt gt f open file0 gt gt gt f
  • Pandas 字典键到列[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 index column1 e1 u c680 5 u c681 1 u c682 2 u c57 e2 u c680 6 u c681 2 u c682 1 u c57 e3 u c68
  • 在 django 中导入设置时出现奇怪的错误

    我有很多项目在 ubuntu 中使用 python2 7 和 virtualenv virtualenvwrapper 工作 在我的工作中 一些开发人员使用 macosx 和 windows 通常我像往常一样创建项目 django admi
  • Python在没有pandas的情况下解码excel表

    我正在尝试在 python 中读取 excel 文件而不使用pandas or xlrd 我一直在尝试将结果转换为bytes to utf 8没有任何成功 xls 文件中的数据 colA colB colC spc 1D0 20190705
  • 在Python中使用pil读取tif图像时出现值错误?

    我必须读取尺寸的tif图像2200 2200并输入 uint16 我将 PIL 库与 anaconda python 一起使用 如下所示 from PIL import Image img Image open test tif img i
  • 将 Django 中的所有视图限制为经过身份验证的用户

    我是 Django 新手 我正在开发一个项目 该项目有一个登录页面作为其索引和一个注册页面 其余页面都必须仅限于登录用户 如果未经身份验证的用户尝试访问这些页面 则必须将他 她重定向到登录页面 我看到 login required装饰器会将
  • tf.print() vs Python print vs tensor.eval()

    看来在Tensorflow中 至少有三种方法可以打印出张量的值 我一直在读here https www freecodecamp org news debugging tensorflow a starter e6668ce72617 an
  • AWS 将 MQTT 消息存储到 DynamoDB

    我构建了一个定期发送 MQTT 消息的 python 脚本 这是发送到后端的 JSON 字符串 Id 1234 Ut 1488395951 Temp 22 86 Rh 48 24 在后端 我想将 MQTT 消息存储到 DynamoDB 表中
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • 超过两个点的Python相对导入

    是否可以使用路径中包含两个以上点的模块引用 就像这个例子一样 Project structure sound init py codecs init py echo init py nix init py way1 py way2 py w

随机推荐

  • HTML 表格导出至 Excel(XLS 或 CSV)

    我正在尝试将 HTML 表格内容导出到 Excel 我看见这个解决方案这有效但没有达到我的预期 因为我无法选择要复制的列 和它不适用于大桌子 还有另一种解决方案是通过js复制并手动粘贴到excel文件 但效果不太好 而且我不太喜欢这种方法
  • 是否存在批量检查区分大小写

    我需要检查给定文件是否存在 区分大小写 out txt 均为小写字母 文件是否存在于我运行脚本的位置 Code Case1 filename out txt if exist filename echo file exist else ec
  • 撤销 OAuth 访问令牌会导致 404 Not Found

    我正在开发一个与 GitHub 集成的应用程序 但在 注销 之前经过身份验证的用户时遇到问题 当我尝试撤销用户的授权令牌时 我从 API 收到 404 Not Found 响应 根据文档 看来我应该能够做一个DELETE请求https ap
  • 按第一行对 numpy 二维数组进行排序,保留列

    在 python 中 我有一个以下形式的 numpy 数组 4 8 2 0 5 3 1 6 8 1 2 2 6 0 3 9 7 6 7 8 5 8 1 1 4 我想按第一行的值从左到右按升序对其进行排序 同时保持整个列完好无损 实际的数组的
  • 无法在 bash 脚本中运行 adb 命令

    我正在尝试从 adb shell 启动 Android 网络共享设置 这样做的主要目的是通过运行 shell 脚本来启用 USB 网络共享模式 我在 Ubuntu 终端 12 04 上使用以下命令集 adb shell am start n
  • Sublime Text 是否有查找打开文件的快捷方式(Eclipse Ctrl + E)?

    Ctrl P of Sublime Text lets me find a file from all project files However there are too many duplicated names I m lookin
  • OpenGL 窗口未打开

    我有来自 OpenGLBook openglbook com 的代码 它可以编译 但无法加载 我完全不知道为什么它没有加载 代码如下 main cpp include main h Methods int main int argc cha
  • C++等待用户输入[重复]

    这个问题在这里已经有答案了 在控制台应用程序中等待用户输入的最佳方法是什么 std cout lt lt press any key to exit wait for user to hit enter or another key 有多种
  • 使用for循环的索引访问变量的名称

    假设我有 4 个字符串 private string string 1 string 2 string 3 string 4 然后假设我有一个 for 循环 如何通过for循环的索引访问变量名 这是我正在谈论的内容的一个想法 for int
  • Oozie 抑制 shell 作业操作的日志记录?

    我有一个运行 shell 脚本的简单工作流程 见下文 shell 脚本运行 pyspark 脚本 该脚本将文件从本地移动到 hdfs 文件夹 当我运行 shell 脚本本身时 它工作得很好 日志在 shell 脚本中通过 gt spark
  • 像关系 SQL 数据库一样使用 JSon (Javascript)

    所以我有一个如下所示的 JSON 变量 var peopleList 1 Name Lisa item1 Name of Item 1 2 Name Marty 3 Name Jordan item1 Name of Item 1 item
  • 如何显示文本视图几秒钟然后使其不可见?

    这个网站是最好的 它对我帮助很大 我是创建 android applecation 的初学者 这是我第一次在这里问问题 我的问题是如何显示一个文本视图5秒并使其消失 当我搜索时我发现了一些代码 但我不知道如何使用它或者也许我使用它以错误的方
  • 输入[类型=文件]验证

    如何检查输入文件是否不为空 我试过 image file click function if image file val alert Chose a file return false 但没有成功 The click事件被触发before
  • Sweave 文档中 R 注释中对图形的动态引用

    我想找到一种使用 LaTeX 的方法 ref 用于在 Sweave Rnw 文件中的 R 代码中进行注释的标记 这里有两个例子 一个是印刷版的 http cm bell labs com cm ms departments sia proj
  • SetLayeredWindowAttributes 使窗口透明仅在部分时间起作用

    我试图使窗口透明 以便只有部分内容可见 我尝试使用SetLayeredWindowAttributes为了实现这一点 这使窗口按照我想要的方式透明 但是只有当窗口图片的一部分位于桌面可见区域之外时 它才有效 由于某种原因 每当窗口完全在屏幕
  • 声音录制

    我是 Android 新手 我正在尝试构建一个应用程序来记录音频数据 我正在使用带有 ADT 插件的 Eclipse Galileo IDE 我的应用程序针对的是 Andriod 2 1 平台 不幸的是example开发指南中提供的抛出许多
  • Python - 导入包失败

    我在导入包时遇到问题 我的文件结构是这样的 filelib init py converters init py cmp2locus py modelmaker init py command file py 模块内command file
  • 我在运行 ant build 时收到“**** 错误的 JAVA 版本 ****”

    我的问题不是这个问题 因为我的java版本没有差异 我安装了 java 1 8 45 jdk 和 jre 后 运行 ant clean all 的构建失败 它说 Java 版本错误 环境检查失败 您使用的版本不受支持 爪哇 请确保您使用的是
  • 如何在 JPQL 或 HQL 查询中使用 MySQL CONVERT_TZ 函数

    我目前有一个表MySQL数据库有一个startDate and endDate两者都是timestamps 这与使用 hibernate 的代码相关联 我可以使用以下 HQL 返回这些 SELECT startDate endDate FR
  • 迭代目录中的所有文件并查找和替换文本 - Python

    宝贝全新 这是弗兰肯斯坦从几个类似的主题组合在一起的 其中没有一个似乎涵盖了在文件循环中嵌套查找和替换的必要步骤 我试图迭代特定类型 此处列为 LIC 的文件夹中的每个文件 不是递归 我只有一个文件夹级别 并替换一小段文本 以下是我所能得出