Python读取数组文件错误

2024-05-31 23:16:32 发布

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

我的文件:

Offices 10
MedicalOffice 15
PostOffice 30
Mall 200

如何使python只读取第二列。 比如get:

10
15
30
200

我试过可能的方法让它只读,10,15,30,等等。。。而不是名字。我试过这个,没有名字,效果很好。但我需要把名字写进文本文件。有什么帮助吗?谢谢

def something(file1):
    with file1 as f:
        nums = [int(line) for line in f]
        print("Read from File: ", nums)


textFileName = input("Enter the filename: ")
file1 = open(textFileName)
something(file1)

谢谢你


Tags: 文件方法getline名字file1something文本文件
3条回答

要读取第二列,请拆分行并获取第二个字段:

[x.split()[1] for x in open(textFileName,"r")]

如果你想要数字,就叫int:

[int(x.split()[1]) for x in open(textFileName,"r")]

你不能只看第二栏

但您可以同时读取这两列,忽略第一列,只使用第二列

例如:

def something(file1):
    with file1 as f:
        lines = (line.partition(' ') for line in f)
        nums = [int(line[-1]) for line in lines)
        print("Read from File: ", nums)

我分两步完成了这项工作,只是为了更容易地看到新的部分(即partition)和您已经拥有的部分(即int)。如果您愿意,可以将其全部塞进一个listcomp中:

        nums = [int(line.partition(' ')[-1]) for line in f]

无论如何,partition在第一个空格处拆分每一行,这样就得到了,例如,('Offices', ' ', '10')[-1]取最后一部分,即'10'。还有int,你已经知道了

与@Nirk的答案类似,但改进了文件处理:

with open('/path/to/file.txt', 'r') as f:
    nums = [x.strip().split()[-1] for x in f]

相关问题 更多 >