使用部分字符串从文件中获取字符串

2024-09-29 01:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含如下字符串的文件:
文件\u A

Solyc01g094920   
Solyc01g094930

现在我想从另一个包含数字的文件中获取相应的字符串:
文件\u B

Solyc01g094410.2.1 
Solyc01g094820.1.2  
Solyc01g094900.1.2  
Solyc01g094910.1.1  
Solyc01g094920.2.1   
Solyc01g094930.1.2 

我现在有东西在为我工作,因为秩序得到了维护。 有没有办法让它在没有行号的情况下工作?你知道吗

linenumber = 0

    for line in file_B:  
        if linenumber > 10 and linenumber < 100:  
            outfile.write(line)
        linenumber += 1

谢谢


Tags: 文件字符串inforifline情况数字
3条回答
import re

a = """'Solyc01g094920'
'Solyc01g094930'"""
b = """'Solyc01g094410.2.1'
'Solyc01g094820.1.2'
'Solyc01g094900.1.2'
'Solyc01g094910.1.1'
'Solyc01g094920.2.1'
'Solyc01g094930.1.2'"""

for n in a.splitlines():
    n = "("+n.strip("'")+".*)'" # this find the pattern lineA plus anything.
    print re.findall(n,b)

输出:

["Solyc01g094920.2.1"]
["Solyc01g094930.1.2"]
a = """'Solyc01g094920'   
'Solyc01g094930'"""
b = """'Solyc01g094410.2.1'  
'Solyc01g094820.1.2'  
'Solyc01g094900.1.2'  
'Solyc01g094910.1.1'  
'Solyc01g094920.2.1'
'Solyc01g094930.1.2'"""

aa = [x.strip("'") for x in a.split()]

for line in b.split():
    for aaa in aa:
        if line.startswith("'" + aaa):
            print(line)

输出:

'Solyc01g094920.2.1'
'Solyc01g094930.1.2'

只需使用split()

for line in file_B:  
    t = line.split('.')   this splits string in collection
    outfile.write(t[0])   first variable from collection

更新:对于文件\u B中但不在文件\u A中的行:

for line in file_B:
    t = line.split('.')
    target = t[0]
    if target not in file_A:
         outfile.write(target)

更新:仅适用于文件\u B中也在文件\u A中的行:

for line in file_B:
    t = line.split('.')
    target = t[0]
    if target in file_A:
         outfile.write(target)

相关问题 更多 >