从每一行的文本文件中提取子字符串?
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))
有没有办法从每个文本文件中提取子字符串,例如 假设这是文本文件,但有很多这样的行:
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))