我遇到了一個我無法解決的挑戰。下面的代碼連續生成資料。但是,我想將條件設定為“y”的值。換句話說,我想將此代碼與計算機的時間同步。我設定了變數“current_hour”。
但問題是我會有多個條件。當我第一次運行代碼時,它會輸入正確的條件并寫入所需的 y 值。 在代碼運行時,我更改了本地機器的時間,但 y 的值不會改變。當我停止腳本并在機器上的不同時間再次運行它時,它會進入正確的狀態。目的是,當我的計算機的時間發生變化時,我希望條件(在這種情況下為 y 的值)發生變化(在代碼運行時實時更改。我不想停止并再次重新運行代碼)。聽起來很簡單,也許確實如此。但我無法解決這個問題。如果在腳本運行時無法將值與時間同步,那么我正在做的專案沒有意義。我假設當我第一次運行代碼時,它會檢查條件并輸入該條件并繼續生成值,在這種情況下,我需要在生成每個值之前檢查每個條件。
import csv
import random
import time
import datetime
current_hour = datetime.datetime.now().hour
x_value = 0
y_value = 0
fieldnames = ["x_value", "y_value"]
while True:
with open('data.csv', 'a') as csv_file:
csv_writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
info = {
"x_value": x_value,
"y_value": y_value,
}
csv_writer.writerow(info)
print(x_value, y_value)
y_value = 30
x_value = 1
time.sleep(1)
uj5u.com熱心網友回復:
首先,你在設定它之后永遠不會使用 current_hour,所以我不知道你所說的“第一次它是正確的”是什么意思。
其次,這不是編程(至少是程式)的作業方式。
在回圈中執行的唯一代碼是在 while 回圈內。如果要使用當前時間,請將其設定為在回圈內查詢時間。
否則不會改變。變數就像盒子,一旦你把東西放進盒子里,它就不會改變,除非你明確告訴它。
在這種情況下,將 current_hour=... 行移到 while 回圈中,并實際參考該變數,而不是使用一些神秘的 y_value 變數,該變數在開始時設定為 0,然后在每次回圈運行時設定為 30。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483939.html
標籤:Python 约会时间 条件语句 导出到 csv 即时的
