为什么我的文本文件被视为单个字符串?

时间:2019-04-17 17:08:42

标签: python-3.x text-files

我有一个文本文件,带有很多名称,这些名称之间用逗号分隔,每个名称都用引号引起来。文本文件看起来像:“ MARY”,“ PATRICIA”,“ LINDA”,“ BARBARA”,“ ELIZABETH”,“ JENNIFER”,“ MARIA”,“ SUSAN”,“ MARGARET”,“ DOROTHY”,“ LISA”, “ NANCY”,“ KAREN”

我的问题是,在将文本文件转换为列表后尝试遍历此文本文件时,整个文本文件都被视为单个字符串。 将其转换为字符串的文本文件ater如下所示: [[''MARY','PATRICIA','LINDA','BARBARA','ELIZABETH','JENNIFER','MARIA','SUSAN','MARGARET','DOROTHY','LISA','NANCY', 'KAREN']]

我尝试使用的代码是:

import csv 

results = []
with open('p022_names.txt', newline='') as inputfile:
    for word in csv.reader(inputfile):
        results.append(word)

print(results)

当我做类似

print(results[0])

它会打印整个文本文件,而不只是'Mary'。因此,我将如何分别遍历每个名​​称,而不是将整个内容视为一个字符串。

1 个答案:

答案 0 :(得分:0)

您未能指定分隔符。

这是一个完整的例子:

  

https://realpython.com/python-csv/

import csv

with open('employee_birthday.txt') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {", ".join(row)}')
            line_count += 1
        else:
            print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')
            line_count += 1
    print(f'Processed {line_count} lines.')

在此示例中,您可以使用row[1]等访问各个“单词”。