写入和覆盖限制为 10 行的文件
Writing and overwriting to a file with a limit of 10 lines
目前我的代码设置最多只能在文本文件中写入 10 行
使用计数器变量。再次启动程序后,我将删除文本文件的内容
以 truncate 开头,然后写入 10 行的新值。
我不想一开始就清除文件,而是想覆盖从
顶部,同时保持最大 10 行限制。我该怎么做呢?基本上我怎样才能用 10 行限制覆盖数据,而不必用 truncate 清除它。 (所以我可以保留一些旧数据)
print("Clearing all Previously stored pH Data")
f = open('PHAverage.txt', 'r+')
f.truncate(0)
counter=0
while True: #Polling Sensor Data
pH=Sensor Value
if counter<10:
fb = open('PHAverage.txt','a+')
fb.read
fb.seek(0)
fb.write(PH + "\n")
fb.close()
counter += 1
编辑**
根据目前的反馈,举个例子,我想在文件的开头开始覆盖数据,每 10 个轮询(或 10 个计数器)。
这样的东西可以工作吗,
如果计数器%10== 0
fb = open('PHAverage.txt','a+')
fb.seek(0)
fb.write(PH + "\n")
fb.close()
f.truncate()
计数器 += 1
您只谈论 10 行,最简单的方法可能是只读取整个文件,更改一个条目并将其全部写回。就像这个更新 index
指向的行的 pH 值的函数:
def savePH(filename, index, ph):
with open(filename, 'r+') as f:
data = list(f)
data[index] = f"{ph}\n"
f.seek(0)
f.writelines(data)
f.truncate()
这假设您已经有一个包含 10 行 pH 数据的文件,并且没有任何错误检查。
counter = 0
while True:
pH = sensor_value
savePH('PHAverage.txt', counter, ph)
counter = (counter + 1) % 10
目前我的代码设置最多只能在文本文件中写入 10 行 使用计数器变量。再次启动程序后,我将删除文本文件的内容 以 truncate 开头,然后写入 10 行的新值。
我不想一开始就清除文件,而是想覆盖从 顶部,同时保持最大 10 行限制。我该怎么做呢?基本上我怎样才能用 10 行限制覆盖数据,而不必用 truncate 清除它。 (所以我可以保留一些旧数据)
print("Clearing all Previously stored pH Data")
f = open('PHAverage.txt', 'r+')
f.truncate(0)
counter=0
while True: #Polling Sensor Data
pH=Sensor Value
if counter<10:
fb = open('PHAverage.txt','a+')
fb.read
fb.seek(0)
fb.write(PH + "\n")
fb.close()
counter += 1
编辑**
根据目前的反馈,举个例子,我想在文件的开头开始覆盖数据,每 10 个轮询(或 10 个计数器)。 这样的东西可以工作吗,
如果计数器%10== 0
fb = open('PHAverage.txt','a+')
fb.seek(0)
fb.write(PH + "\n")
fb.close()
f.truncate()
计数器 += 1
您只谈论 10 行,最简单的方法可能是只读取整个文件,更改一个条目并将其全部写回。就像这个更新 index
指向的行的 pH 值的函数:
def savePH(filename, index, ph):
with open(filename, 'r+') as f:
data = list(f)
data[index] = f"{ph}\n"
f.seek(0)
f.writelines(data)
f.truncate()
这假设您已经有一个包含 10 行 pH 数据的文件,并且没有任何错误检查。
counter = 0
while True:
pH = sensor_value
savePH('PHAverage.txt', counter, ph)
counter = (counter + 1) % 10