我试图让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']]
感谢。
答案 0 :(得分:0)
这都是关于格式化的。如果你用英语解释你想要的东西,那么你会看到代码自然会跟随。
您希望在自己的行上打印每一行数据,每个元素用空格分隔:
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
循环迭代文件对象本身的每一行。请注意,如果您想开始将数据用作数字,则需要在您阅读的每个元素上调用int
- 它们目前都是字符串。您可以使用map
函数轻松完成此操作:
row = map(int, line.strip().split(' '))
答案 1 :(得分:0)
请尝试以下代码:
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
答案 2 :(得分:-1)
试试这个而不是print(表格):
for line in table:
wholeline = ""
for i in line:
wholeline += str(i)
print(wholeline)