我正在编写一个代码,该代码应该用户输入一系列数字然后读取文本文件,其中包含前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;
但是,代码应该是
10 John Tyler
11 James Polk
12 Zachary Taylor
13 Millard Fillmore
14 Franklin Pierce
&#13;
当我没有添加代码以将其写入文件时,代码会打印出正确的结果。您可以提供的任何建议或建议将非常感谢。
答案 0 :(得分:0)
Johnny Mopp已经进行了代码更改,以便查看打印到控制台的正确信息。
您在输入脚本的同一目录中创建输出文件。因此,在运行脚本后,请说:
python my_script.py
类型
cat Output.txt
查看文件内容。