输出文本文件未正确显示数据

时间:2018-03-14 16:40:57

标签: python

我正在编写一个代码,该代码应该用户输入一系列数字然后读取文本文件,其中包含前44位美国总统的名字。然后代码应该显示输出文件范围内的总统的名称。到目前为止我所拥有的是:



def main():
    """
    Display a range of presidents
    """
    lowerNumber, upperNumber = getRange()
    displayPresidents(lowerNumber, upperNumber)

def getRange():
    """
    Get range from user input
    """
    lowerNumber = int(input('Enter the lower number for the range: '))
    upperNumber = int(input('Enter the upper number for the range: '))
    return lowerNumber, upperNumber

def displayPresidents(lowerNumber, upperNumber):
    """
    Read from USPres.txt and print only the presidents that are within the given
    lower and upperNumber  provided ,write the output
    to an output file name as output.txt
    You can not use a list to solve this problem
    """
    output_file = open('Output.txt', 'w')
    with open('USPres.txt') as file:
        for line_num, content in enumerate(file, 1):
            content = content.rstrip('\n')
            if line_num in range(lowerNumber, upperNumber+1):
                desired_content = str(line_num) + " " + content
                output_file.write(desired_content)
                print(output_file)
    file.close()
    output_file.close()

main()




当我运行程序时,它会显示:



<_io.TextIOWrapper name='Output.txt' mode='w' encoding='UTF-8'>
<_io.TextIOWrapper name='Output.txt' mode='w' encoding='UTF-8'>
<_io.TextIOWrapper name='Output.txt' mode='w' encoding='UTF-8'>
<_io.TextIOWrapper name='Output.txt' mode='w' encoding='UTF-8'>
<_io.TextIOWrapper name='Output.txt' mode='w' encoding='UTF-8'>
&#13;
&#13;
&#13;

但是,代码应该是

&#13;
&#13;
10 John Tyler 
11 James Polk 
12 Zachary Taylor
13 Millard Fillmore
14 Franklin Pierce 
&#13;
&#13;
&#13;

当我没有添加代码以将其写入文件时,代码会打印出正确的结果。您可以提供的任何建议或建议将非常感谢。

1 个答案:

答案 0 :(得分:0)

Johnny Mopp已经进行了代码更改,以便查看打印到控制台的正确信息。

您在输入脚本的同一目录中创建输出文件。因此,在运行脚本后,请说:

python my_script.py

类型

cat Output.txt

查看文件内容。