使用 python 替换特定行中的字符串

2023-12-02

我正在编写一个 python 脚本来替换具有特定扩展名 (.seq) 的目录中每个文本文件中的字符串。替换的字符串只能来自每个文件的第二行,输出是一个新的子目录(称为 clean),其文件名与原始文件相同,但带有 *.clean 后缀。输出文件包含与原始文本完全相同的文本,但替换了字符串。我需要用“N”替换所有这些字符串:“K”、“Y”、“W”、“M”、“R”、“S”。

这是我在谷歌搜索后想到的。它非常混乱(编程的第二周),并且它停止在将文件复制到干净目录中而不替换任何内容。我真的很感激任何帮助。

先谢谢了!

import os, shutil

os.mkdir('clean')

for file in os.listdir(os.getcwd()):
    if file.find('.seq') != -1:
        shutil.copy(file, 'clean')

os.chdir('clean')

for subdir, dirs, files in os.walk(os.getcwd()):
    for file in files:
        f = open(file, 'r')
        for line in f.read():
            if line.__contains__('>'): #indicator for the first line. the first line always starts with '>'. It's a FASTA file, if you've worked with dna/protein before.
                pass
            else:
                line.replace('M', 'N')
                line.replace('K', 'N')
                line.replace('Y', 'N')
                line.replace('W', 'N')
                line.replace('R', 'N')
                line.replace('S', 'N')

一些注意事项:

  1. string.replace and re.sub不是就位,因此您应该将返回值分配回您的变量。
  2. glob.glob更适合在目录中查找与定义模式匹配的文件...
  3. 也许您应该在创建目录之前检查该目录是否已经存在(我只是假设这一点,这可能不是您想要的行为)
  4. the with语句负责以安全的方式关闭文件。如果你不想使用它,你必须使用try finally.
  5. 在您的示例中,您忘记添加后缀*.clean ;)
  6. 你实际上并没有编写文件,你可以像我在示例中那样做或者使用fileinput模块(直到今天我还不知道)

这是我的例子:

import re
import os
import glob

source_dir=os.getcwd()
target_dir="clean"
source_files = [fname for fname in glob.glob(os.path.join(source_dir,"*.seq"))]

# check if target directory exists... if not, create it.
if not os.path.exists(target_dir):
    os.makedirs(target_dir)

for source_file in source_files:
   target_file = os.path.join(target_dir,os.path.basename(source_file)+".clean")
   with open(source_file,'r') as sfile:
      with open(target_file,'w') as tfile:
         lines = sfile.readlines()
         # do the replacement in the second line.
         # (remember that arrays are zero indexed)
         lines[1]=re.sub("K|Y|W|M|R|S",'N',lines[1])
         tfile.writelines(lines)

print "DONE"

希望能帮助到你。

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

使用 python 替换特定行中的字符串 的相关文章

  • 在 Python 中处理单值元组的最佳实践是什么?

    我正在使用第三方库函数 它从文件中读取一组关键字 并且应该返回一个值的元组 只要有至少两个关键字 它就能正确执行此操作 但是 在只有一个关键字的情况下 它返回一个原始字符串 而不是大小为 1 的元组 这是特别有害的 因为当我尝试做类似的事情
  • 来自 python 的 FQL 多重查询因 unicode 查询而失败

    使用 python 2 6 5 和 facebook sdk 0 3 2 import facebook api facebook GraphAPI token api fql example u SELECT uid2 FROM frie
  • 正则表达式替换,但仅限于两种模式之间

    好的 我有一个多行字符串 我正在尝试对其进行一些清理 每行可能是也可能不是一大段引用文本的一部分 例子 This line is not quoted This part of the line is not quoted but this
  • 对 Python DataFrame 进行子集化

    我正在从 R 过渡到 Python 我刚刚开始使用 Pandas 我有一个可以很好地子集化的 R 代码 k1 lt subset data Product p id Month lt mn Year yr select c Time Pro
  • 如何在 pygame 中聚焦光线或如何仅绘制窗口的某些圆形部分?

    对于这一点 如果您熟悉它 请想想 超级马里奥制造2 中嘘关卡中的黑暗模式 我试图在角色周围创建一个圆形聚光灯 这也将使圆圈范围内的任何内容都可见 例如部分站在地板上 敌人或场景中的任何其他物体 我的计划是首先绘制圆圈 聚光灯 然后绘制场景
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • 如何使用泛型类型的构造函数

    如何使用 python 泛型类型的构造函数 T typing TypeVar T class MyClass typing Generic T def init self initialValue typing Iterable self
  • numpy 数组最快的保存和加载选项

    我有一个生成二维的脚本numpy数组与dtype float和形状的顺序 1e3 1e6 现在我正在使用np save and np load对数组执行 IO 操作 然而 这些函数对于每个数组都需要几秒钟的时间 是否有更快的方法来保存和加载
  • Python 函数可能会引发哪些异常? [复制]

    这个问题在这里已经有答案了 Python 中有什么方法可以确定 内置 函数可能引发哪些异常 例如 文档 http docs python org lib built in funcs html http docs python org li
  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • 如何抑制 pyinstaller 生成的可执行文件窗口中的所有警告

    我已经使用 pyinstaller 从 python 文件生成了可执行文件 该程序按其应有的方式工作 但在我想隐藏的窗口中出现了一条警告消息 当 python 文件在 IDE 中运行时 以下行会抑制所有警告消息 warnings filte
  • Python3.1中的视图?

    Python3 1中的视图到底是什么 它们的行为方式似乎与迭代器类似 并且它们也可以具体化为列表 迭代器和视图有何不同 据我所知 视图仍然附加到创建它的对象上 对原始对象的修改会影响视图 来自docs http docs python or
  • 在 Docker 容器内运行时,如何自动在 API 路由文件中进行 FASTAPI 拾取更改?

    我通过 docker 运行 FastApi 在 docker compose 中创建一个名为 ingestion data 的服务 我的 Dockerfile FROM tiangolo uvicorn gunicorn fastapi p
  • 如何替换被测模块的文件访问引用

    pyfakefs https code google com p pyfakefs 听起来非常有用 它 最初是作为核心 Python 模块的一个适度的假实现来开发的 以支持中等复杂的文件系统交互 并于 2006 年 9 月在 Google
  • 具有条件的重复行 pandas dataframe python

    我的数据框有问题 我的 df 是 product power brand product 1 3 x 1500W brand A product 2 2x1000W 1x100W product 3 1x1500W 1x500W brand
  • 在Python中引用不带换行符的长字符串

    我正在尝试在 Python 中编写一个长字符串 该字符串显示为 OptParser 选项的帮助项 在我的源代码 py 文件中 我想放置换行符 以便我的代码不会花费新行 但是 我不希望这些换行符影响代码运行时该字符串的显示方式 例如 我想写
  • Python 类方法的示例用例是什么?

    我读了Python 中的类方法有什么用 https stackoverflow com questions 38238 what are class methods in python for但那篇文章中的例子很复杂 我正在寻找 Pytho
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • 连接运算符 + 或 ,

    var1 abc var2 xyz print literal var1 var2 literalabcxyz print literal var1 var2 literal abc xyz 除了带有 的自动空格之外 两者有什么区别 哪个通

随机推荐

  • 将二维数组(字符串)存储到文件并检索它

    我制作了一个简单的程序 其中有一个存储大量数据的 2D 字符串数组 我搜索了很多地方来了解如何存储和检索二维数组 我想在程序结束时将数据保存在数组中 并在程序启动时检索该数据 我努力了 ObjectOutputStream toFile n
  • 如何将 java.lang.String 的空白 JSON 字符串值反序列化为 null?

    我正在尝试将一个简单的 JSON 反序列化为 java 对象 然而我却变得空虚String值java lang String属性值 在其余属性中 空白值将转换为null值 这就是我想要的 下面列出了我的 JSON 和相关的 Java 类 J
  • 从 python 中的标签名称中抓取数据

    您好 我正在尝试从网站上抓取用户数据 我需要用户 ID 该 ID 可在标签名称本身中找到 我正在尝试使用 python selenium 和 beautiful soup 中的 UID 来抓取div tag Example lt div i
  • 使用 Android 本机应用程序中的 ADAL 库对 Azure AD 上的用户进行身份验证

    我们有一个要求 用户应该从本机应用程序 Android iOS 登录 而不从应用程序调用 Microsoft 登录 Web 视图窗口 我们有示例代码 演示使用 net 控制台应用程序中的用户名和密码对 Azure AD 进行非交互式身份验证
  • FreeSwitch + Mode Verto + Webrtc + Android + 无法从 android 拨打电话

    我做了一个mode verto安卓客户端 使用WebRtc 预建库 org webrtc google webrtc 1 0 libjingle io pristine libjingle 11139 aar and 自由切换但只成功进行单
  • 启动 JavaFX 应用程序时的内部 NPE

    所以基本上我开始了一个虚拟的 JavaFX 项目 只是为了为我的实际问题实现一个简约的示例 但现在我什至无法再运行那个简约的项目 也没有收到足够的错误信息来自己用谷歌搜索出来 所以现在 当我运行代码时 我收到给定的错误堆栈 这不会引导我到任
  • Biztalk 和调用 Web 服务的最佳方式

    我正在编写一个 biztalk 编排 需要调用一个 Web 服务 可能是多个 Web 服务 而且可能不止一次 我面前有两个选择 一 在单独的代码项目中使用 wsdl 并从表达式形状的代码中调用 Web 服务 二 从 Biz 使用它 获取架构
  • 无法在 MySQL 中获得正确的编码

    一段时间以来 我一直在努力解决 MySQL 中的编码问题 我正在建立一个数据库 其中不仅包含拉丁文 还包含西里尔文和阿拉伯文文本 这是我如何创建数据库的示例 CREATE DATABASE db1 DEFAULT CHARACTER SET
  • 错误:该位置没有任何可重复的内容

    我有一个文本文件 其中包含俚语及其用真正的英语替代的列表 我使用 作为分割点将此文本文件转换为字典 并且在转换后打印字典时一切似乎都正常 但是 源自此行的错误 slangs re re compile join slang dict key
  • 对两个给定日期之间的集合日期字段进行排序

    我想根据两天之间的日期字段对列表进行排序 比如从现在到接下来的三天 排序列表应从现在开始和接下来的 3 天按升序排列 之后的所有先前和未来日期按升序排列 e g List
  • 如何在多个 EJB 之间共享 Java 缓存系统 (JCS) 资源

    我使用 JCS 来存储 ldap 搜索结果 该结果应由多个 EJB 共享 我创建了一个单例类来仅初始化 JCS 一次 但由于 EJB 的类加载器 它已使用自己的副本初始化了多次 所以搜索资源不共享 你们如何解决需要在多个 bean 之间共享
  • 如何让应用程序在后台保持唤醒状态

    我编写了一个应用程序 该应用程序连接到蓝牙设备并在汽车 在后台 和导航 或其他东西 在前台使用 但在 Android 7 也可能是 6 上 应用程序会在一段时间后进入睡眠状态 当我尝试从相机拍照时 睡眠模式 立即生效 我的应用程序现在正在睡
  • 从基类方法调用基类重写函数

    public class A public void f1 String str System out println A f1 String this f1 1 str public void f1 int i String str Sy
  • 检测精灵套件中的碰撞

    我正在尝试使用精灵套件制作一个简单的游戏 基本思想是 有一名玩家可以跳跃以避免阻挡 但我有一个问题 我不知道如何做到当玩家击中方块时玩家消失并且血液动画开始 首先 我不明白我在苹果网站上找到的这段代码的作用 static const uin
  • 一个 docker 用户可以向另一个用户隐藏数据吗?

    Alice 和 Bob 都是同一主机上 docker 组的成员 Alice 想要在 Docker 容器中运行一些长时间运行的计算 然后将结果复制到她的主文件夹中 Bob 非常爱管闲事 Alice 不希望他能够读取她的计算所使用的数据 系统管
  • Leaflet js:如何在地图上绘制任何标记结束时获取纬度和经度

    我得到了一个接近的代码 但我不确定 因为我是第一次使用 Leaflet js 我的意图是 假设 Leaflet js 正在显示地图或非地理数据 并且我有一个与 Leaflet js 相关的工具栏 工具栏有许多标记 如圆形 多边形 方形等 当
  • 我正在尝试获取所有发表超过 3 篇作品的作者的列表 - DBpedia Sparql

    我正在尝试获取已完成 3 项或以上工作的所有作者的列表 在 DBpedia 中 我的示例可以运行在 http dbpedia org sparql 基本代码 select count work as totalWork author Whe
  • magento订单列表查询

    我想选择 Magento 中所有订单的列表 这是我目前正在处理的另一个 PHP 应用程序中显示来自 magento 的所有订单列表所必需的 也有人可以使用 Magento 约定给我写代码 例如Mage 我使用 Magento 1 4 2 版
  • 在 Shiny 中同步两个 Highchart - 输入更改时不调用 JS

    相关于上一篇文章我提出 我想在 R Shiny 中的一个单独但同步的 Highcharter 图中调用单击事件时 在两个方向上更新一个 Highcharter 图中的点以更改颜色 我能够在 R Shiny 中同步两个 Highcharter
  • 使用 python 替换特定行中的字符串

    我正在编写一个 python 脚本来替换具有特定扩展名 seq 的目录中每个文本文件中的字符串 替换的字符串只能来自每个文件的第二行 输出是一个新的子目录 称为 clean 其文件名与原始文件相同 但带有 clean 后缀 输出文件包含与原