【发布时间】:2017-12-08 04:39:59
【问题描述】:
短版: 输入和输出文件中的行数不相等。我不明白为什么我没有添加或减去任何行,即输入文件有 12327 行但输出只有 11903。
我似乎找不到我的代码有任何问题。我希望有更多经验的人可以吗?谢谢。
详细版本: 我有一个由 3 个函数组成的简单 python 脚本。
函数 1 从 .txt 文件(infile)中获取数字列表,将它们全部转换为浮点数,并将所有负数更改为 0。然后将它们添加到列表(原始列表)中。然后将该列表的每个元素打印到输出文件中。它还告诉您输入文件中的行数。
函数 2 实质上是检查输出文件中的行数。
函数 3 只是运行函数 1 和 2。
输入文件有 12327 行,而输出文件只有 11903。
我制作了另一个输入文件来测试脚本。这个 .txt 输入文件有 10 行,其中一些是负数。但是输出文件完全是空的。
我不明白为什么输入和输出的行数不同?我已经包含了下面的代码。
如果有任何建议,我将不胜感激。谢谢。
def thelist(): #FUNCTION 1
original_list = []
for line in infile:
newline = float(line)
if newline < 0:
newline = 0
original_list.append(newline)
print('The input file has', len(original_list), 'lines.')
for element in original_list:
print(element, file = outfile)
def outfilelinenumber(): #FUNCTION 2
outfile = open('outfile.txt')
improved_list = []
for line in outfile:
improved_list.append(line)
if not improved_list:
print('Output file is empty.')
else:
print('The output file has', len(improved_list), 'lines.')
def main(): #FUNCTION 3
thelist()
outfilelinenumber()
print('\n', '*** Finished ***')
infile = open('infile.txt')
outfile = open('outfile.txt', 'w')
main()
【问题讨论】:
标签: python list input printing output