我试图将这些输入放入文本文件

时间:2017-01-10 21:36:54

标签: python function text area

在课堂上,我们正在研究计算正方形或矩形面积的函数。该程序要求提供一个人的姓名,他们想要的形状以及长度和宽度。然后打印该形状的区域,程序再次循环。我要做的是将每个单独的名称输入和区域输出并输出到文本文件中。我们的老师并不清楚如何做到这一点。任何帮助,将不胜感激。这是代码:

import time

def area(l, w):
    area = l * w
    return area

def square():
    width = int(input("please enter the width of the square"))
    squareArea = area(width, width)
    return squareArea

def rectangle():
    width = int(input("please enter the width of the rectangle"))
    length = int(input("please enter the length of the rectangle"))
    rectangleArea = area(length, width)
    return rectangleArea

def main():
        name = input("please enter your name")
        shape = input("please enter s(square) or r(rectangle)")
        if shape == "r" or shape =="R":
            print ("area =", rectangle())
            main()
        elif shape == "s" or shape == "S":
            print ("area =", square())
            main()
        else:
            print ("please try again")
            main()  
main()

编辑:我不认为我问的问题很清楚,抱歉。我希望能够输入一些内容,例如名称,并能够将其放入文本文件。

2 个答案:

答案 0 :(得分:0)

This正是您要找的。行file = open('file.txt', 'w')创建一个变量文件,其中存储了表示'file.txt'的文件对象。第二个参数w告诉函数以“写入模式”打开文件,允许您编辑其内容。完成此操作后,您只需使用f.write('Bla\n')写入文件。当然,将Bla替换为您想要添加的内容,这可以是您的字符串变量。请注意,默认情况下此函数不会生成换行符,因此如果您想要的话,最后需要添加\n

重要提示:完成文件后,请务必使用file.close()。这将从内存中删除该文件。如果你忘记这样做,它将不会是世界末日,但它应该永远完成。不这样做是导致初学者程序内存使用率高和内存泄漏的常见原因。

希望这有帮助!

编辑:正如MattDMo所提到的,最佳做法是使用with语句打开文件。

with open("file.txt", 'w') as file: # Work with data

这将绝对确保对此文件的访问与此with语句隔离。感谢MattDMo提醒我这件事。

答案 1 :(得分:0)

简单方法:

file_to_write = open('myfile', 'w') # open file with 'w' - write permissions
file_to_write.write('hi there\n')  # write text into the file
file_to_write.close()  # close file after you have put content in it

如果要在完成所有操作后确保文件已关闭,请使用下一个示例:

with open('myfile.txt', 'w') as file_to_write:
    file_to_write.write("text")