使用python

时间:2019-05-09 11:08:33

标签: python list text line python-3.6

我想使用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 个答案:

答案 0 :(得分:3)

您的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)

答案 1 :(得分:0)

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()

答案 2 :(得分:0)

为什么不使用拆分功能?

#!/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."]

答案 3 :(得分:0)

如果我对您的理解正确,那么您实际上需要一份清单。但是,在代码中,您只有一个元素(一个字符串)的列表,因此,您会看到一个额外的标点符号... 我认为您需要以下条件:

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()

答案 4 :(得分:0)

我建议您尝试使用eval()功能

您可以将文件中的文本传递到eval()函数,该函数将转换为列表。

lis = eval(open('file_name').read())