我正在尝试让Python以我在.txt文件中输入的格式打印一个表,如下所示:
1 2 3 4
5 6 7 8
9 11 12 13这是我到目前为止的代码:
f = input('Enter the file name: ')
infile = open(f, 'r')
contents = infile.readlines()
infile.close()
table = []
for line in range (len(contents)):
rows = contents[line].strip().split(' ')
table.append(rows)
print(table)这就是我在运行它之后得到的结果,我不确定如何从这里继续。
[['1', '2', '3', '4'], ['5', '6', '7', '8'], ['9', '11', '12', '13']]谢谢。
发布于 2016-03-24 18:52:21
这一切都与格式化有关。如果你用英语解释你想要什么,那么你会看到代码自然地跟在后面。
您希望在自己的行上打印每行数据,每个元素用空格分隔:
def print_table(table):
for row in table:
print(' '.join(row))调用此函数以显示数据。
另一个快速的解决方案是使用pprint,这是一个漂亮的打印库。
from pprint import pprint
...
pprint(table)整个过程,为了删除不必要的代码和复制而进行了优化:
def print_table(table):
for row in table:
print(' '.join(row))
def main():
f = input('Enter the file name: ')
table = []
with open(f, 'r') as infile:
for line in infile:
row = line.strip().split(' ')
table.append(row)
print_table(table)
if __name__ == '__main__':
main()提示:
with来避免手动关闭文件并确保其关闭,即使在凌晨的异常情况下也是如此。for循环来迭代文件对象本身中的每一行。<代码>F213
请注意,如果您想要开始将数据用作数字,则需要对读取的每个元素调用int -它们当前都是字符串。您可以使用map函数轻松完成此操作:
row = map(int, line.strip().split(' '))发布于 2016-03-24 19:25:07
尝试以下代码:
f = input('Enter the file name: ')
infile = open(f, 'r')
contents = infile.readlines()
infile.close()
table = []
for line in range (len(contents)):
rows = contents[line].strip().split(' ')
table.append(rows)
for elem in table:
print(*elem)输出:
1 2 3 4
5 6 7 8
9 11 12 13发布于 2016-03-24 18:49:44
尝试此操作,而不是打印(表):
for line in table:
wholeline = ""
for i in line:
wholeline += str(i)
print(wholeline)https://stackoverflow.com/questions/36198304
复制相似问题