#python #python-3.x #string #list
Вопрос:
У меня есть текстовый файл в виде :
sample.txt
Hi I am student
I am from
То, что я пробовал, это
import string
import re
def read_to_list1(filepath):
text_as_string = open(filepath, 'r').read()
x = re.sub('[' string.punctuation ']', '', text_as_string).split("n")
for i in x:
x_as_string = re.sub('[' string.punctuation ']', '', i).split()
print(x_as_string)
read_to_list1('sample.txt')
Это приводит к
['Hi,'I','am','student']
['I','am','from']
Я хочу, чтобы результат был таким:
[['Hi,'I','am','student'],['I','am','from']]
Комментарии:
1. В чем дело со всеми этими
string.punctuation
манипуляциями? Можете ли вы показать пример того, с чем вы пытаетесь справиться в этих случаях?
Ответ №1:
После открытия файла вы можете использовать понимание списка для перебора строк и для каждой строки str.split
с пробелами, чтобы получить маркеры для каждого подсписка.
def read_to_list1(filepath):
with open(filepath, 'r') as f_in:
return [line.split() for line in f_in]
Ответ №2:
Для конкретного примера sample.txt, это также должно сработать:
import string
import re
def read_to_list1(filepath):
text_as_string = open(filepath, 'r').read()
x = re.sub('[' string.punctuation ']', '', text_as_string).split("n")
final_array=[]
for i in x:
x_as_string = re.sub('[' string.punctuation ']', '', i).split()
final_array.append(x_as_string)
return final_array
print(read_to_list1('sample.txt'))