是否从每行的文本文件中提取子字符串?

2024-05-19 20:27:12 发布

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

有没有一种方法可以从文本文件中提取子字符串,比如。 假设这是一个文本文件,但有更多类似的行:

president, Donald Trump, 74, USA

Priminster, Boris Johnson, 56, UK

我需要循环每一行,得到用逗号分割的子字符串。 因此,对于其他行,子字符串将是Donald Trump, 74,依此类推


Tags: 方法字符串逗号文本文件ukusajohnsondonald
3条回答

您可以使用python中字符串的简单split()join()方法轻松地完成此任务-

工作代码-

# You could open your file like this
#file1 = open('myfile.txt', 'r') 

# For now I am assuming your file contains the following line of data. 
# You could uncomment above line and use.

file1 = ['president, Donald Trump, 74, USA','president, Donald Trump, 74, USA']
for line in file1: 
    print("".join(line.split(',')[1:3]))

输出:

Donald Trump, 74
Donald Trump, 74

解释

  • 基本上,您只是在逗号处拆分字符串(文件中的每一行)并将字符串转换为数组。因此line.split(',')将给出-

     ['president', ' Donald Trump', ' 74', ' USA']
    
  • 现在,我们正在加入在上述步骤中获得的列表的第二个和第三个元素。这是由",".join()完成的,它将把列表的每个元素与','连接起来

  • 另外,请注意,我们使用了[1:3],它将仅从列表中选择第一个和第二个元素。因此,他们将给出上面显示的结果

希望这有帮助

给你:

with open('data.file') as f:
    for line in f:
        parts = line.split(', ')
        if len(parts) == 4:
            print(', '.join(parts[1:3]).strip())

输出:

Donald Trump, 74
Boris Johnson, 56

您可以使用“拆分”,在特定字符处拆分字符串。您将得到一个列表,以后可以加入。读取文件很容易

with open('filename.txt', 'r') as rf:
    lines = rf.readlines()

对于此特定示例,您可以执行以下操作

for line in lines:
    line = line.strip()
    row  = "{}, {}".format(line.split(',')[1], line.split(',')[2])
    print(row)

否则,请更清楚地说明您希望实现的目标

相关问题 更多 >