使用python枚举

2024-03-29 11:17:06 发布

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

我是一个新的编码器,目前正试图写一段代码,从一个打开的txt文件,将打印出行号,每一条信息是。 我打开了文件,去掉了逗号。我在网上发现可以使用一个名为enumerate()的函数来获取行号。但是,当我运行代码而不是得到1、2、3这样的数字时,我得到的信息是:0x113a2cff0。你知道怎么解决这个问题吗?下面是我如何使用enumerate的代码。你知道吗

my_document = open("data.txt")
readDocument = my_document.readlines()
invalidData = []
for data in readDocument:
    stripDocument = data.strip()
    if stripDocument.isnumeric() == False:
        data = (enumerate(stripDocument))
        invalidData.append(data)

Tags: 文件函数代码txt信息datamy编码器
3条回答

首先,从打开文档并阅读其内容开始,使用with是一种很好的做法,因为它会在使用后关闭文档。readlines函数收集所有行(假定data.txt文件与.py文件位于同一文件夹中:

with open("data.txt") as f:
    lines = f.readlines()

之后,使用enumerate将索引添加到行中,以便可以读取、使用这些行,甚至保存索引:

for index, line in enumerate(lines):
    print(index, line)

最后一点,如果在data.txt上有特征线,则这些线将包含一个\n,如果需要,可以使用line.strip()删除它们。你知道吗

完整代码为:

with open("data.txt") as f:
    lines = f.readlines()

for index, line in enumerate(lines):
    print(index, line.strip())

你现在这样做,不是去掉逗号。不带参数的strip()方法只删除行首和行尾的空格。如果您只需要数据,这将起作用:

invalidData = []
for row_number, data in enumerate(readDocument):
    stripped_line = ''.join(data.split(','))
    if not stripped_line.isnumeric():
        invalidData.append((row_number, data))

把你的问题陈述:

trying to write a piece of code that, from an opened txt document, will print out the line number that each piece of information is on

正如@roganjosh试图解释的那样,您错误地使用了enumerate

with open("data.txt") as my_document:
    for i, data in enumerate(my_document):
        print(i, data)

相关问题 更多 >