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

Python 是否从每行的文本文件中提取子字符串?,python,python-3.x,loops,text-files,Python,Python 3.x,Loops,Text Files,有没有一种方法可以从文本文件中提取子字符串,比如。 假设这是一个文本文件,但有更多类似的行: 美国74岁的唐纳德·特朗普总统 Priminster,鲍里斯·约翰逊,56岁,英国 我需要循环每一行,得到用逗号分割的子字符串。 因此,对于其他行,子字符串应该是Donald Trump,74,依此类推。您可以使用split来拆分特定字符处的字符串。您将得到一个列表,以后可以加入。读取文件很容易 with open('filename.txt', 'r') as rf: lines = rf.r

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

美国74岁的唐纳德·特朗普总统

Priminster,鲍里斯·约翰逊,56岁,英国

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

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

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)

否则,请更清楚地了解您想要实现的目标。

您可以使用python中字符串的简单
split()
join()
方法轻松实现-

工作代码- 输出:

Donald Trump, 74
Donald Trump, 74

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

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

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

希望这有帮助

给你:

以open('data.file')作为f的
:
对于f中的行:
零件=直线分割(',')
如果len(零件)==4:
打印(“,”.join(零件[1:3]).strip())
输出:

Donald Trump, 74
Boris Johnson, 56

打开文件,逐行读取文件,然后使用pythons
string.split
方法和逗号分隔符,以获得可以过滤的单词列表

with open('filename.txt', 'r') as my_file:
    line = my_file.readline()
    while line:
        word_list = line.split(',')
        print(f'{word_list[1]}, {word_list[2]}')
        line = my_file.readline()
    
试试这个:

lst = []
with open("textfile.txt", "r") as file:
  for line in file:
    stripped_line = line.strip()
    #to save it as a list
    lst.append(stripped_line.split(",")[1:-1])
print(lst)

#to print each of the element
for i in lst:
    print(",".join(i))
lst = []
with open("textfile.txt", "r") as file:
  for line in file:
    stripped_line = line.strip()
    #to save it as a list
    lst.append(stripped_line.split(",")[1:-1])
print(lst)

#to print each of the element
for i in lst:
    print(",".join(i))