Представление текстового файла в список с использованием Python - PullRequest
0 голосов
/ 09 мая 2019

Я хочу открыть текстовый файл в списке, используя Python.

Структура моего text.txt файла выглядит следующим образом:

"Предложение 1.", "Предложение 2. ", ...," Предложение n. "

Каждое предложение заключено в знаки препинания и разделено запятой.Я хочу напечатать его в списке, поддерживающем ту же структуру.

Я хочу, чтобы вывод отображался как:

["Sentence 1.", "Sentence 2.",..., "Sentence n."]

Но на данный момент я получаю вывод в приведенном нижеформат

['"Sentence 1.", "Sentence 2.",..., "Sentence n."']

Как исключить лишнюю одинарную знаку препинания?Любая помощь приветствуется.

Это мой код:

def read_data():
    global new_list
    with open("text.txt", 'r', encoding = 'utf-8') as f:
       raw_data = f.read()
       new_list = [raw_data.strip()]
       print(new_list)
read_data()

Ответы [ 5 ]

3 голосов
/ 09 мая 2019

Ваш text.txt файл в основном является CSV-файлом.Используя модуль csv, мы можем сделать следующее:

import csv

with open("text.txt", 'r', encoding = 'utf-8') as f:
    reader = csv.reader(f, skipinitialspace=True)
    new_list = next(reader)
0 голосов
/ 09 мая 2019

Я бы предложил вам попробовать eval () function

Вы можете передать текст из вашего файла в функцию eval(), которая преобразуется в список.

lis = eval(open('file_name').read())
0 голосов
/ 09 мая 2019

Если я вас правильно понял, вам действительно нужен список.Тем не менее, в вашем коде у вас есть список из одного элемента (одна строка), поэтому вы видите дополнительный знак пунктуации ... Я думаю, вы хотите следующее:

def read_data():
    global new_list
    with open("text.txt", 'r', encoding = 'utf-8') as f:
        raw_data = f.read()
        new_list = raw_data.strip().replace('"','').split(',')
        print(new_list)
read_data()
0 голосов
/ 09 мая 2019

Почему вы не используете функцию разделения?

#!/usr/bin/env python3
# coding: utf-8

def read_data():
    global new_list
    with open("text.txt", 'r', encoding = 'utf-8') as f:
       raw_data = f.read()
       new_list = raw_data.split(",")
       print(new_list)


read_data()

Это распечатает:

["Sentence 1.", "Sentence 2.",..., "Sentence n."]
0 голосов
/ 09 мая 2019
def read_data():
    with open("text.txt", 'r', encoding = 'utf-8') as f:
       raw_data = f.read()
       new_list = [i.replace('"', '').strip() for i in raw_data.split(',')]
       print(new_list)

read_data()
...