搜索文本并将其复制到下一行的Python代码

时间:2019-06-23 16:30:02

标签: python

我使用python代码读取文本文件中的行,并在特定字符之间复制文本。例如,_ _之间的文本。

Input
./2425/1/115_Lube_45484.jpg 45484
./2425/1/114_Spencerian_73323.jpg 73323

Output
./2425/1/115_Lube_45484.jpg 45484
Lube
./2425/1/114_Spencerian_73323.jpg 73323
Spencerian

有什么建议吗?

4 个答案:

答案 0 :(得分:0)

尝试一下:

import re

for line in your_text.splitlines():
    result = re.match("_(.*)_", your_text)
    print(match.group(0))
    print(match.group(1))

your_text是包含上述示例的字符串。

答案 1 :(得分:0)

我将使用build in代替regex:split()

input = './2425/1/114_Spencerian_73323.jpg 73323'

output = input.split('_')[1]
print(output)

当然,如果每一行的输入字符串中都有双_

答案 2 :(得分:0)

test = './2425/1/114_Spencerian_73323.jpg_abc_ 73323'

result = test.split("_",1)[1].split("_")[0]

print(result)

.split('',1)将字符串分成两部分,即:0索引将是''的左子字符串,而1索引将是字符串的右子字符串。我们再次用'_'分割字符串的右侧部分,以便提取_之间的文本。

注意:仅当_之类的 test 之间仅出现一次文本时,这才有用。如果字符串中多次出现这种情况,它将不会提取文本

答案 3 :(得分:0)

已解决。

file_path = "text_file.txt"

with open(file_path) as f:
    line = f.readline()
    count= 1
    while line:
        print(line,line.split('_')[1])
        line = f.readline()

        count+= 1

谢谢大家