我的while循环只保存一个值

时间:2016-02-01 22:10:29

标签: python python-2.7 raspberry-pi

所以我设置了一个电位器和一个LED,代码的一部分如下:

        while True:
            if (GPIO.input(22) == GPIO.HIGH):
                now = str(datetime.now())
                text_file = open("button.txt", "w")
                text_file.write("\n switch activated at " + now)
                text_file.close()
                print("switch activated at" + now)
            while GPIO.input(22) == GPIO.HIGH:
                GPIO.output(4, GPIO.HIGH)
            else:
                GPIO.output(4, GPIO.LOW)

IT工作正常,启动电位器时LED指示灯亮,启动电位器时LED指示灯熄灭。除了它只能节省电位器激活的最后时间,我可以做任何事情来解决这个问题吗?这是我第一次尝试将内容保存到.txt文件中,所以请放宽。

2 个答案:

答案 0 :(得分:0)

使用" w"打开文件时它会清除文件中的所有内容,只保存新信息。

你想打开一个文件,附加" a",就像这样:

text_file = open("button.txt", "a")

来自jQuery SVG, why can't I addClass?

  

第一个参数是包含文件名的字符串。第二   argument是另一个字符串,包含一些描述该字符的字符   将使用该文件的方式。模式可以是' r'当文件将   只有阅读,' w'仅用于写入(具有相同的现有文件)   名称将被删除),并且' a'打开要追加的文件;任何数据   写入文件会自动添加到文件末尾。

答案 1 :(得分:0)

open函数中的"w"指定用您编写的内容覆盖文件。使用"a"追加。

      while True:
        if (GPIO.input(22) == GPIO.HIGH):
            now = str(datetime.now())
            text_file = open("button.txt", "a")
            text_file.write("\n switch activated at " + now)
            text_file.close()
            print("switch activated at" + now)
        while GPIO.input(22) == GPIO.HIGH:
            GPIO.output(4, GPIO.HIGH)
        else:
            GPIO.output(4, GPIO.LOW)

有关这些参数的详细信息,请查看this answer.