首页 > 编程问答 >python 将数字前面的字符替换为数字后面的新字符

python 将数字前面的字符替换为数字后面的新字符

时间:2024-07-29 12:00:47浏览次数:11  
标签:python string

我有一些字符串看起来像: *.rem.1.gz 和 *.rem.2.gz

我想将其替换为 *.1.trim.gz 和 *.2.trim.gz

1 号文件和 2 号文件相互配对,我想创建一个单独的字符串来同时包含这两个文件。

import os
allfiles = os.listdir
pair = [x.replace("rem.(\d+)","(\d+).trim")for x in allfiles] ##obviously this doesn't work but just want to give an idea what I want to do!

感谢您的帮助!


import os
import re

def pair_and_rename_files(file_list):
  """将文件列表配对并重命名。

  Args:
    file_list: 文件列表。

  Returns:
    包含重命名文件对的列表。
  """
  paired_files = []
  for filename in file_list:
    match = re.search(r'\.rem\.(\d+)\.gz$', filename)
    if match:
      number = match.group(1)
      new_filename = filename.replace(f'.rem.{number}.gz', f'.{number}.trim.gz')
      paired_files.append((filename, new_filename))
  return paired_files

# 获取所有文件
allfiles = os.listdir()

# 配对和重命名文件
paired_files = pair_and_rename_files(allfiles)

# 打印配对的文件
for old_filename, new_filename in paired_files:
  print(f'配对: {old_filename} 和 {new_filename}')

代码解释:

  1. pair_and_rename_files(file_list) 函数:
  2. 接受一个文件列表作为输入。
  3. 使用正则表达式 \.rem\.(\d+)\.gz$ 查找以 .rem.数字.gz 结尾的文件名。
  4. 如果找到匹配项,则提取数字并使用字符串格式化创建新的文件名。
  5. 将原始文件名和新文件名作为元组添加到 paired_files 列表中。
  6. 返回 paired_files 列表。

  7. 主程序部分:

  8. 使用 os.listdir() 获取当前目录中的所有文件。
  9. 调用 pair_and_rename_files() 函数来配对和重命名文件。
  10. 循环遍历 paired_files 列表,并打印每个配对的文件名。

示例用法:

如果 allfiles 包含以下文件:

file1.rem.1.gz
file2.rem.2.gz
other_file.txt

则输出将是:

配对: file1.rem.1.gz 和 file1.1.trim.gz
配对: file2.rem.2.gz 和 file2.2.trim.gz

注意: 此代码仅打印配对的文件名。要实际重命名文件,可以使用 os.rename(old_filename, new_filename) 函数。

标签:python,string
From: 78805339

相关文章

  • 使用python打开UNC文件
    如何使用python通过路径打开网络计算机上的文件?我当前正在使用os.startfile但随后出现错误winerror2:无法打开文件。文件路径是正确的,我可以通过win+R打开该文件。感谢您提供的任何帮助。importwin32wnetimportosdefopen_unc_path(unc_path,usern......
  • Python环境:深入理解与构建实践
    Python环境:深入理解与构建实践在当今的软件开发领域中,Python以其简洁的语法、丰富的库支持和广泛的应用场景,成为了众多开发者、数据科学家、机器学习工程师及自动化测试人员的首选语言。然而,要高效地使用Python进行项目开发,深入理解并合理构建Python环境是至关重要的。本文......
  • 界面自动化测试录制工具,让python selenium自动化测试脚本开发更加方便
    自动化测试中,QTP和seleniumIDE都支持浏览器录制与回放功能,简单的来说就像一个记录操作步骤的机器人,可以按照记录的步骤重新执行一遍,这就是脚本录制。个人觉得传统录制工具有些弊端,加上要定制支持我自己的自动化框架(python单机版自动化测试框架源代码),所以自己用javascript写了一个......
  • Python 面试常问问题及应用场景解析
    引言随着Python在数据科学、Web开发、自动化脚本、机器学习等领域中的广泛应用,越来越多的公司开始寻找具备Python技能的人才。因此,在Python面试中,面试官通常会通过一系列问题来评估应聘者的编程基础、问题解决能力和对Python特性的理解程度。本文将涵盖Python面试中最常见的......
  • python 虚拟环境
    python虚拟环境Python的venv模块允许你创建轻量级的“虚拟环境”,这些环境是独立的Python安装,用于项目的依赖隔离。每个虚拟环境都有自己的Python解释器、库和脚本,与系统中安装的Python相互隔离。这意呀着,你可以在一个项目中安装特定版本的库,而不会影响到系统上其他Pyt......
  • 使用 Azure Devops API (Python) 撰写 PR 评论
    在任何地方都找不到直接的方法。如何通过Python中的AzureDevopsAPI将注释添加到拉取请求?可以使用AzureDevOpsPythonAPI将注释添加到拉取请求。以下是执行此操作的方法:1.安装AzureDevOps库:pipinstallazure-devops2.导入必要的类并对的组......
  • Python\Python312\Lib\site-packages\torch\lib\fbgemm.dll
    在此处输入图像描述我正在尝试从HuggingFace导入GPT-2变压器模型,但当我尝试导入它时,遇到错误。即使当我尝试仅导入Torch时,我也会收到相同的错误。我已尝试重新安装Torch并完成了所有操作,包括更新VisualC++Redistributable软件包和更新我的驱动程序,但问题......
  • Python GEKKO 不更新参数
    我正在Python中使用GEKKO来估计弹跳球的轨迹。为此,我需要估计2个变量:e_1(恢复系数)和q_1(每次弹跳时的水平速度损失)。我已为其编写了以下代码,但参数似乎没有更新,尽管解算器已成功执行。参数的初始值与参数的最终优化值相同e_1=0.8和q_1=1代码:imp......
  • Python内置模块常用总结
    目录unittestunittest点击查看代码importunittestfromhtmltestreportimportHTMLTestReportclassTestOne(unittest.TestCase):@classmethoddefsetUpClass(cls)->None:print(f'setUpClass')@classmethoddeftearDownClass......
  • 使用 warpPerspective 生成​​全景图像并使用 python 进行单应拼接
    我没有获得正确的全景图像,并且图像质量随着图像的缝合而降低。我期待获得正确的360度图像,并且不会因正确拼接而降低质量。当我使用网络摄像头图像时。它应该得到没有不匹配的拼接图像。我正在研究匹配FCFS中的图像或最佳匹配的方法。创建并添加一个输入图像以及image1和im......