【问题标题】:Python isnt printing my regex expression results (or anything)?Python 没有打印我的正则表达式结果(或任何东西)?
【发布时间】:2021-06-09 16:59:45
【问题描述】:

我正在尝试提取文本文件第一行中出现的第一个数字。我是菜鸟,所以我在玩正则表达式。我遇到的问题是什么都没有打印,所以我不确定是我的代码还是其他什么?

我也尝试过打印我的文件名,但也没有任何反应,所以我不确定发生了什么

work_dir = "User/...my folder of 9 text files"
for path in glob.glob(os.path.join(work_dir, "*.txt")):
    with io.open(path, mode="r", encoding="utf-8") as file:
        first_line = file.readline()
        for line[34:] in first_line:
            if "LOCUS" in line[0:34]:
                matches = int(re.search(r"(\d+)", first_line).group(0))
                print(matches)

    name = os.path.basename(path).replace(".gbff", "")
    print(name)

这是我正在使用的文件类型的示例的开头。 它是一个文本文件,尽管它在这里看起来像一个表格。

LOCUS       AE017334             *5227419* bp    DNA     circular BCT 03-DEC-2015
DEFINITION  Bacillus anthracis str. 'Ames Ancestor', complete genome.
ACCESSION   AE017334
VERSION     AE017334.2
DBLINK      BioProject: PRJNA10784
            BioSample: SAMN02603433

我需要我放在**周围的号码

【问题讨论】:

  • 包含内容的文件的最小样本会有所帮助
  • 我贴了一段摘录 :) @kamal

标签: python regex file printing


【解决方案1】:

我实际上得到了你的正则表达式和文本格式的输出,它在切片和你提到的其他东西上工作正常,所以它不是正则表达式或 for 循环部分,因为你说它没有打印任何东西,我假设它也没有打印出错误我认为这与您的路径或目录读数有关。

无论如何,这是您的正则表达式部分: f

first_line='LOCUS       AE017334             *5227419* bp    DNA     circular BCT 03-DEC-2015'
matches = int(re.search(r"(\d+)", first_line[34:]).group(0))
print(matches)

输出:

5227419

发布此内容以便其他尝试回答的人可以跳过这些步骤并检查代码的其他部分

【讨论】:

  • 谢谢,这真的很好用。似乎问题出在我的某个地方,但我不知道为什么。我会暂时打开它,以防有人发现我看不到的东西
【解决方案2】:
str = open('a.txt', 'r').read()
import re
start = '*'
end = '*'

print( (str[str.find(start)+len(start):str.rfind(end)]))
print("\n")

如果您只需要基因座值,我将您的文件保存为 a.txt 替换为您的文件名。在使用 regx 之前重新排列文本

【讨论】:

  • 我试图运行它,但由于某种原因什么都没有打印出来 :( 谢谢,等我修好了再回来
  • 查看输出图像。我刚刚更新了。再次检查文本文件路径
  • 我认为这是我的问题。感谢您发布输出!我怎样才能只得到第二个号码?也许有拆分?
  • 看我修改了代码。请投票并接受为有效答案
  • 这在我使用变量运行它并添加拆分时有效,谢谢!似乎打印是我的问题,所以我会留下这个问题,以防有人发现原因
猜你喜欢
  • 2013-08-17
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
  • 1970-01-01
  • 2022-06-15
相关资源
最近更新 更多