如何从文本文件生成python中的数组/表

如何从文本文件生成python中的数组/表,python,Python,data.txt文件: Lambert 34 10.50 Osborne 22 6.25 Giacometti 5 100.70 电流输出: Enter the file name: data.txt Name Hours Total Pay Lambert 34 10.50 Osborne 22 6.25 Giacometti 5 100.70 该代码的问题是需要以表格格式打印出来。标题为姓名、小时数、总工资,下面是文件内容 我知道如何打开文件,并按行打印,但我不知道如何将其变成表格

data.txt文件:

Lambert 34 10.50
Osborne 22 6.25
Giacometti 5 100.70
电流输出:

Enter the file name: data.txt
Name Hours Total Pay
Lambert 34 10.50

Osborne 22 6.25

Giacometti 5 100.70

该代码的问题是需要以表格格式打印出来。标题为姓名、小时数、总工资,下面是文件内容

我知道如何打开文件,并按行打印,但我不知道如何将其变成表格格式。输出的示例如下所示:

Enter the file name: data.txt

Name            Hours      Total Pay
Lambert            34         357.00
Osborne            22         137.50
Giacometti          5         503.50

我该怎么做?我就快到了,我非常确定我需要让我的第一个print语句更长一些,并从另一个堆栈溢出帖子中创建一个数组,比如这样

data = np.array([[1, 2, 1],
                 [0, 1, 0],
                 [2, 4, 2]])
但问题是如何从文本文件的内容生成数组

谢谢

我已修改了,添加了列名称以适合您的回答

df = pd.read_csv('data.txt', delim_whitespace=True, names=['Name', 'Hours', 'Total Pay'])
你可以这样做

如果要跳过初始行 将numpy作为np导入 data=np.genfromtxtdata.txt

或者你也可以用熊猫来达到这个目的

import pandas as pd
data = pd.read_csv("data.txt", sep=" ")

这也应该行得通

我会这样做:

filename = input("Enter the file name: ")

items = []
try :
    with open (filename, 'r') as datafile :
        print("Name", "          Hours", "    Total Pay")
        for line in datafile :
            items = line.strip ('\n').split (' ')
            tab1 = ' ' * (18 - (len (items [0]) + len (items [1])))
            tab2 = ' ' * (12 - len (items [2]))
            print (items [0], tab1, items [1], tab2, items [2])
except OSError :
        print ('File ERROR occured.')
        print (filename, ' has not been loaded.')

使用熊猫。pandas.read_csv'data.txt',delim_whitespace=True应该可以工作。您是否使用\t作为分隔符将其作为csv读取,它是以制表符分隔的?这是否回答了您的问题?e、 g.@wjandrea请看他问题的最后一行,他问的是如何从文本文件生成数组。@google是的,数据框将其数据存储在数据数组中,并支持OP想要的列标题。无论哪种方式,OP似乎最终都在询问如何打印表格——ndarray只是其中一种方式。
import pandas as pd
data = pd.read_csv("data.txt", sep=" ")
filename = input("Enter the file name: ")

items = []
try :
    with open (filename, 'r') as datafile :
        print("Name", "          Hours", "    Total Pay")
        for line in datafile :
            items = line.strip ('\n').split (' ')
            tab1 = ' ' * (18 - (len (items [0]) + len (items [1])))
            tab2 = ' ' * (12 - len (items [2]))
            print (items [0], tab1, items [1], tab2, items [2])
except OSError :
        print ('File ERROR occured.')
        print (filename, ' has not been loaded.')