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

Extract substrings from a text file on each line?

有没有办法从每个文本文件中提取子字符串,例如 假设这是文本文件,但有很多这样的行:

president, Donald Trump, 74, USA

Priminster, Boris Johnson, 56, UK

我需要遍历每一行并获取用逗号分隔的子字符串。 因此,子字符串将是 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() 方法轻松完成

工作代码-

# 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']
    
  • 现在,我们只是将上一步得到的列表中的第2个和第3个元素连接起来。这是由 ",".join() 完成的,它将列表的每个元素与 ','.

    连接起来
  • 此外,请注意我们使用了 [1:3],这将 select 仅是列表中的第一个和第二个元素。所以他们会给出上面显示的结果

希望对您有所帮助!

给你:

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

打开文件,逐行读取文件,然后使用带有逗号分隔符的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))