You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python re模块移除requirements.txt列表项的python_version限定部分

用Python re模块移除requirements中的python_version环境标记

直接用re.sub()配合正则表达式就能搞定,下面给你两种方案按需选择:

方案1:精准移除python_version相关后缀

如果只想去掉包含python_version的后缀,用这个正则:

import re

# 原始需求列表
req_list = ['pkg1==0.1; python_version < "3.7"', 'pkg2==0.6', 'pkg3>=0.4']

# 编译正则:匹配分号开头、包含python_version的后缀部分
pattern = re.compile(r';\s*python_version\s*[<>!=]+\s*".*"')

# 批量处理每个列表项
cleaned_reqs = [re.sub(pattern, '', req) for req in req_list]

print(cleaned_reqs)
# 输出:['pkg1==0.1', 'pkg2==0.6', 'pkg3>=0.4']

正则说明:

  • ;:匹配后缀的起始分号
  • \s*:匹配分号前后可能存在的空格
  • python_version:精准匹配环境标记关键词
  • [<>!=]+:匹配版本比较操作符(比如<、>=、==等)
  • \s*".*":匹配版本号的引号和内容

方案2:移除所有分号开头的环境标记

如果想一次性去掉requirements中所有以分号开头的环境限制(不止python_version),可以用更简单的正则:

import re

req_list = ['pkg1==0.1; python_version < "3.7"', 'pkg2==0.6; os_name == "posix"', 'pkg3>=0.4']

# 匹配分号开头到字符串结尾的所有内容
pattern = re.compile(r';.*')

cleaned_reqs = [re.sub(pattern, '', req) for req in req_list]

print(cleaned_reqs)
# 输出:['pkg1==0.1', 'pkg2==0.6', 'pkg3>=0.4']

这个方案更通用,适合批量清理所有环境标记的场景。

内容的提问来源于stack exchange,提问作者user22383274

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:47:53