【发布时间】:2022-01-16 05:20:48
【问题描述】:
大家晚上好,我是 9 岁的 David tzu,我真的需要帮助解决这个单词正确对齐的问题,我只尝试了打印但不太适合。
sample.txt 包含:
David Tzu January 13, 2012 FriedChicken
Mama March 15, 1980 Sphagetti
Papa June 27, 1981 Burger
这是我的代码:
file = open("sample.txt", "r")
line_count = 1
for line in file:
if line != "\n":
line_count += 1
file.close()
with open("sample.txt") as fi:
print("")
for x in range(1,line_count):
print(x, fi.readline().replace("\n", ""))
print("")
上面代码的当前结果是这样的:
1 David Tzu January 13, 2012 FriedChicken
2 Mama March 15, 1980 Sphagetti
3 Papa June 27, 1981 Burger
预期结果:
Name Birthday Favorite Food
1 David Tzu January 13, 2012 FriedChicken
2 Mama March 15, 1980 Sphagetti
3 Papa June 27, 1981 Burger
我真的很抱歉我糟糕的英语,希望你们都明白我想表达的意思。
附加代码: #字数
file = open("sample.txt", "r")
line_count = 1
for line in file:
if line != "\n":
line_count += 1
file.close()
with open("sample.txt") as fi:
print("")
for x in range(1,line_count):
print(x, fi.readline().replace("\n", ""))
print("")
file = open("Sample.txt", "rt")
data = file.readline()
words = data.split()
print(len(words))
【问题讨论】:
-
查看字符串格式pyformat.info
-
我不明白你的问题。您只需添加行
Name Birthday Favorite Food -
我不明白你为什么打开文件两次——你应该使用
for number, line in enumerate(fi, 1):,而且你不必计算行数。或者您应该在第一个for-loop 中一次性完成所有操作。 -
如果您不知道列的长度,那么首先您必须将每一行拆分为列,并为每一列使用
len(),然后获取max(all_lengths_in_column)- 然后使用此值使用string formatting格式化列。但问题是将行拆分为列 - 它可能需要正则表达式,它可以使用\s{2,}拆分2 or more spaces -
嗨,大卫 - 在我们进一步讨论之前,我只想澄清一下您的目标。从您在上面发布的预期输出和实际结果来看,您所缺少的似乎只是列的标题?包括标题是你想要做的吗?