寻找正确方向或帮助的一点。我知道这是我做错了,但我是新人,仍在努力学习,所以总是需要和需要指导。
我查看了问题部分,找不到有用的东西。我尝试了一堆解决方案,但他们没有工作,除非我做错了。我想要做的是每周一个小步骤写一个csv一个星期然后关闭文件并打开一个新的。这是基于真正的日历周。我也遇到了循环问题。我可以按照我想要的方式打开并写入文件,但不能在我想要的时间内写入文件。
以下是我正在使用的代码的一部分,之前有一些代码,但它只是打开iframes获取我需要的数据:
file_name = 'Tempdata.csv'
headers = (['Space', 'South Wall Int.','','','Space', 'South Wall Ext.')
headers2 =(['Timestamp','Time','Date','Temperature','Timestamp',
'Time','Date','Temperature'])
if os.path.isfile(file_name):
with open('Tempdata.csv', 'a', newline='') as f:
w = csv.writer(f)
line=()
for frag in data:
line+=frag
w.writerow(line)
else:
with open(file_name, 'w', newline='') as f:
w = csv.writer(f)
w.writerow(headers)
w.writerow(headers2)
line=()
for frag in data:
line+=frag
w.writerow(line)
nos=25 # Number of samples
req=5 # Sampling frequency
print("\nTemperature & timestamp, sampled every", freq, "seconds:")
while True:
for i in range(nos):
ts=driver.find_element_by_name("_lastUpdated").get_attribute
("value")
#print("\nTemperature: ", element.text, "read at:", ts)
time.sleep(freq)
driver.switch_to_default_content()
print ("Done.")
答案 0 :(得分:2)
由于你的代码并不完全是最小的,所以我没有读过很多内容,而是通过你的口头描述。
我使用datetime
来获取当前时间(包括日历周)。当有新的一周时,我关闭旧的一周并打开一个新文件。
最后我等待60或59秒,具体取决于当前分钟的秒数(实际操作需要一些时间,否则会累积)。
因此,如果您通过操作替换write
- 命令,这应该可以。
import datetime
import time
old_week = -1
writer = None
while True:
dt = datetime.datetime.now()
calendar_week = dt.isocalendar()[1]
minute = dt.minute
if calendar_week > old_week:
old_week = calendar_week
if writer is not None:
writer.close()
#replace accordingly
writer = open('log_%s.csv' % calendar_week, 'w')
writer.write('week; minute; actual\n')
#replace accordingly
writer.write('%s;%s;%s\n' % (calendar_week, minute, dt.isoformat()))
if dt.second < 30:
time.sleep(60)
else:
time.sleep(59)
writer.close()