如何从文本文件生成python中的数组/表
data.txt文件:如何从文本文件生成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 该代码的问题是需要以表格格式打印出来。标题为姓名、小时数、总工资,下面是文件内容 我知道如何打开文件,并按行打印,但我不知道如何将其变成表格
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.')