您可以考虑使用associative array(在Python中称为^{})来存储变量及其值,而不是尝试分配名称。然后,代码可能看起来像这样(从^{} docs中大量借用):import csv
with open('1.txt', 'rt') as f:
reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
lineData = list()
cols = next(reader)
print(cols)
for col in cols:
# Create a list in lineData for each column of data.
lineData.append(list())
for line in reader:
for i in xrange(0, len(lineData)):
# Copy the data from the line into the correct columns.
lineData[i].append(line[i])
data = dict()
for i in xrange(0, len(cols)):
# Create each key in the dict with the data in its column.
data[cols[i]] = lineData[i]
print(data)
data然后包含每个变量,这些变量可以通过data['varname']访问。
因此,例如,您可以通过data['a']获得列表['1', '2', '3', '4'],给出问题中提供的输入。
我认为,与上面显示的基于dict的方法相比,尝试基于文档中的数据创建名称可能是一种相当尴尬的方法。不过,如果您真的想这样做,您可以在Python中查看reflection(我对这个主题一无所知)。