Skip to main content
 首页 » 编程设计

python之如何从python中的txt中逐列读取数据表

2025年05月04日15yjmyzz

所以基本上我需要读入一个文件,并逐列显示结果,下面显示了示例输入和输出以及我的代码。

这是txt文件:

  Name  ID  City    Favorite Fruit 
Benjamin    5   Copenhagen  kiwi 
Tom 100 Kingston    "watermelon, apple" 
Rosemary    20  Philadelphia    "pineapple, mango" 
Annie   95  East Setauket   "blueberry, hawthorn" 
Jonathan    75  Ithaca  cherry 
Kathryn 40  San Francisco   "banana, strawberry" 

这是输出:

Number of rows: 7 
Number of columns: 4 
Column 0: Name 
 1 Annie 
 1 Benjamin 
 1 Jonathan 
 1 Kathryn 
 1 Rosemary 
 1 Tom 
Column 1: ID 
 1 5 
 1 20 
 1 40 
 1 75 
 1 95 
 1 100 
Column 2: City 
1 Copenhagen 
1 East Setauket 
1 Ithaca 
1 Kingston 
1 Philadelphia 
1 San Francisco 
Column 3: Favorite Fruit 
 1 "banana, strawberry" 
1 "blueberry, hawthorn" 
 1 "pineapple, mango" 
 1 "watermelon, apple" 
 1 cherry 
 1 kiwi 

下面是我的代码,我被困在如何逐列打印表格的问题上:

import sys 
def main(): 
    alist =[] 
    data = open("a1input1.txt").read() 
    lines = data.split('\n') 
    totalline =len(lines) 
    print ("Number of low is: " + str(totalline)) 
    column = lines[0].split('\t') 
    totalcolumn = len(column) 
    print ("Number of column is: " + str(totalcolumn)) 
    for index in range(totalline): 
        column = lines[index].split('\t') 
        print (column) 
 main() 

下面是我所做的:newlist.sort(),名称列已排序,但 ID 列未排序。所有这些值都是从一个 txt 文件中读取的。我不明白为什么只有 ID 列没有排序?

Column 0: Name 
Annie 
Benjamin 
Jonathan 
Kathryn 
Rosemary 
Tom 
Column 1: ID 
100 
20 
40 
5 
75 
95 

我尝试使用“str()”转换字符串,但结果是一样的

请您参考如下方法:

您可以使用 python 内置的 csv 模块,并为自己省去很多难看的代码。

import csv 
data = open("data", "rb") 
csv_dict = csv.DictReader(data, delimiter="\t", quotechar="\"") 

这将为您提供一个对象,您可以迭代该对象以获取值的字典。

>>> for item in csv_dict: 
...     print item 
...  
{'City': 'Copenhagen', 'Favorite Fruit': 'kiwi', 'Name': 'Benjamin', 'ID': '5'} 
{'City': 'Kingston', 'Favorite Fruit': 'watermelon, apple', 'Name': 'Tom', 'ID': '100'} 
{'City': 'Philadelphia', 'Favorite Fruit': 'pineapple, mango', 'Name': 'Rosemary', 'ID': '20'} 
{'City': 'East Setauket', 'Favorite Fruit': 'blueberry, hawthorn', 'Name': 'Annie', 'ID': ' 95'} 
{'City': 'Ithaca', 'Favorite Fruit': 'cherry', 'Name': 'Jonathan', 'ID': '75'} 
{'City': 'San Francisco', 'Favorite Fruit': 'banana, strawberry', 'Name': 'Kathryn', 'ID': '40'} 

你可以得到一个标题列表

>>> csv_dict.fieldnames 
['Name', 'ID', 'City', 'Favorite Fruit']