【发布时间】:2020-03-13 01:40:29
【问题描述】:
我正在尝试将我的 python 程序调整为“适应”具有或多或少数据列的文件。 我目前的方法是这样的:
file_name = 'C:/Users/gwong/Documents/ME 021/CylindricalRollerBearingData_01.txt'
answer = 'y'
col0 = []
col1 = []
col2 = []
col3 = []
col4 = []
col5 = []
col6 = []
col7 = []
col8 = []
with open(file_name, 'r') as DataFile:
Title = DataFile.readline()
header = DataFile.readline().split()
units = DataFile.readline().split()
for line in DataFile:
valstrings = line.split()
col0.append(float(valstrings[0]))
col1.append(float(valstrings[1]))
col2.append(float(valstrings[2]))
col3.append(float(valstrings[3]))
col4.append(float(valstrings[4]))
col5.append(float(valstrings[5]))
col6.append(float(valstrings[6]))
col7.append(float(valstrings[7]))
col8.append(valstrings[8] + valstrings[9])
数据文件如下所示:
SKF Bearing Data for Cylindrical roller bearings, single row (Metric)
Principal dimensions Basic load ratings Fatigue load limit Speed ratings Designation
d[mm] D[mm] B[mm] C[kN] C0[kN] Pu[kN] Ref speed[r/min] Lim speed[r/min] Designation bearing
15 35 11 12.5 10.2 1.22 22000 26000 NJ 202 ECP
15 35 11 12.5 10.2 1.22 22000 26000 NU 202 ECP
15 35 11 12.5 10.2 1.22 22000 34000 NU 202 ECPHA
这是使用文件中数据的代码的方式:
while (answer == 'y'):
UserMins =[]
UserMaxs =[]
ans = 'y'
while (ans == 'y'):
UserVals = []
UserVals.append(col0)
UserVals.append(col1)
UserVals.append(col2)
UserVals.append(col3)
UserVals.append(col4)
UserVals.append(col5)
UserVals.append(col6)
UserVals.append(col7)
虽然这效率低下,但这适用于我正在使用的当前文件。但是,如果我将文件更改为具有不同列的另一个文件,则会出现列表超出范围的错误,或者它不会打印文件中的所有数据。
有没有一种方法可以从文件中读取数据而不管列的数量?
【问题讨论】: