在Python中读取文件不会读取第一个lin

2024-10-05 17:41:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读一个文本文件,用逗号分隔单词和数字,然后将它们添加到单独的列表中,但是,名字被省略了。这是我的密码。在

for line in keywordFile:
     line = keywordFile.readline()
     keyword.append(line[0])
     keywordValue.append(line[1])

Tags: in密码列表forreadlineline数字名字
3条回答

似乎您keywordFile是一个file对象,由于file对象是迭代器(一次性iterable),所以在循环第一行之后,您将使用第一行。在

for line in keywordFile:
          ^

然后使用readline来读取下一行,这是额外的,所以为了解决这个问题,您需要删除这个部分。在

另外,作为一种更具python风格的方法,您可以使用列表理解来创建单词列表,方法是使用逗号。如果要创建一个列表,列出可以使用嵌套循环的所有单词:

^{pr2}$

但是如果你想把每一行的单词放在一个单独的列表中,你只需要使用一个循环:

with open ('filename') as keywordFile :
    words = [line.split(',') for line in keywordFile]

或者,更好的选择是使用csv模块以单独的形式打开文件文字。你无法将分隔符参数传递给csv.reader函数:

import csv

with open('file_name') as f:
  words=csv.reader(f,delimiter=',')  

这里的words是一个来自分离词元组的迭代器。如果你想连接它们,你可以使用^{}函数。在

您将跳到第一个readline(),只需使用for语句中定义的line。在

尝试类似于:

for line in keywordFile:
     tokens = line.split(',')
     keyword.append(tokens[0])
     keywordValue.append(tokens[1])

相关问题 更多 >