Python 3.5 - 生成文本文件

时间:2017-09-24 20:35:48

标签: python loops file-io

我必须编写一个程序,提示用户输入六个测试名称及其分数,并将它们写入名为tests.txt的文本文件中。我必须使用循环,每个输入应写入文件中自己的行。完成后,程序应生成确认消息。

示例输出

Entering six tests and scores
Enter test name objects 
Enter % score on this test 88
Enter test name loops 
Enter % score on this test 95
Enter test name selections.   
Enter % score on this test 86 
Enter test name variables
Enter % score on this test 82
Enter test name files
Enter % score on this test 100
Enter test name functions
Enter % score on this test 80
File was created successfully

然后我必须编写另一个程序,该程序使用循环来读取和处理前一个程序中的tests.txt。该程序必须输出一个两列表,显示测试名称和分数。表格完成后,平均值应精确显示到小数点后一位。

示例输出

Reading six tests and scores
TEST          SCORE
objects       88
loops         95
selections    86
variables     82
files         100
functions     80

Average is 88.5

这远远超出我必须做的任何事情。到目前为止,我的任务非常简单。我正在使用Python 3.5,因此我无法使用任何新功能。

以进度编辑

到目前为止,我有第一个生成txt文档的程序:

def main():
myfile = open('test.txt', 'w')
test = input('Please enter test name or enter to quit ')

while test != '':
    score = int(input('Enter % score on this test '))
    myfile.write(test + '\n')
    myfile.write(str(score) + '\n')
    test = input('Please enter test name or enter to quit ')

myfile.close()
print('File was created successfully')

main()的

第二个程序看起来像这样并且形状粗糙:

def main():
f = open('test.txt', 'r'); 
text = f.read(); 
f.close()

main()的

有人可以给我一些方向吗?谢谢!

1 个答案:

答案 0 :(得分:1)

第1部分

您可以写入如下文件:

'w'

如果文件不存在则会创建该文件并覆盖所有内容。如果您将'a'替换为f = open('/path/to/your/file.name', 'w'),它会附加到文件的末尾(您需要自己添加换行符)。

如果您在程序开头时执行f.close(),最后执行write,则会写入其中的所有内容(也就是说,它不会覆盖之前的f = open('file.txt', 'w') f.write('hello, ') f.write('world!\n') f.close() 直到输出流被刷新和关闭的操作。)

例如:

file.txt

会将hello, world!的内容设置为lambda array: sum(array) / len(array)

第2部分

列表的平均值是其元素之和除以元素数。字面意思只是f = open('file.txt', 'r'); text = f.read(); f.close() ...

第3部分

要从文件中读取,您可以执行readlineproduct-detail读取一行而不是整个文件。

从现在开始编写实际程序本身应该是相当简单的,所以我将把实际编码留给你,因为这看起来像是一个家庭作业问题。