gpt4 book ai didi

python - 使用 python 创建一个字符串数组,其中包含在文件中找到的文本组合

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:47 26 4
gpt4 key购买 nike

我是 python 脚本的新手,正在为以下任务寻找解决方案:

  1. 打开文本文件
  2. 创建一个字符串数组,其中包含必须在文本文件(多行)中找到的文本(名称 + 属性)

文件摘录如下:

**HM_comp_by_property "4512_solid"    34
*SOLID SECTION, ELSET=flange2, MATERIAL=WN1.4512
**HM_comp_by_property "4512_2_0mm" 7
*SHELL SECTION, ELSET=ccc_pin , TEMPERATURE = 3, MATERIAL=WN1.4512
2.0 , 3

最后必须创建的是一个由“elset”名称及其 Material 的不同组合组成的数组:

flange2    WN1.4512
ccc_pin WN1.4512

希望您能为我提供一些入门技巧。我不期望有一个完整的解决方案,一些指南会很好 :-)。

提前致谢!

最佳答案

由于它是单行代码,因此有一种方法可以做到这一点:

with open('input_file.txt') as f:
array = [x for x in [re.findall(r'(?:ELSET|MATERIAL)=([^\s,]*)', line) for line in f] if x]

本质上,

  • 打开文件
  • 读取行,一次一行:for line in f
  • 找到您需要的数据: re.findall(r'(?:ELSET|MATERIAL)=([^\s,]*)', line)
  • 去掉空白条目: [x for x in [...] if x]

您可能对 re.findall() 步骤感兴趣:

  • re.findall 返回所有匹配的数组
  • 第一个参数是模式:
    • r'' -- 使用原始字符串,没有 \\ tomfoolery。
    • (?:ELSET|MATERIAL) - 匹配那些关键字,但不记得它们
    • ([^\s,]*) - 匹配一系列非空白、非逗号字符,并记住它们
    • (?:ELSET|MATERIAL)=([^\s,]*) - 匹配像 ELSET=foo.bar 这样的文本并记住 foo。条形码

因此,整个过程逐行搜索我们关心的两个模式,并返回那些 TYPE=VAL 对的值的数组。

关于python - 使用 python 创建一个字符串数组,其中包含在文件中找到的文本组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com