0
我有一個CSV文件(ZN_15M),我試圖每小時使用readcsv函數。所以,我有安裝apscheduler,我試圖用它來讀取每個小時csv文件(和一些其他的東西沒有顯示,但如果我能得到的readcsv東西去其他的東西也可以工作):Python Pandas - apscheduler -
import sys
from time import sleep
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
scheduler.start()
def Run():
f2 = open('C:\Users\cost9\OneDrive\Documents\PYTHON\Exported_Data\ZN_ES\ZN_15M.csv')
ZN = pd.read_csv(f2)
#Do stuff to the CSV File/DataFrame
ZN.tocsv(path_or_buf = 'path')
def main():
job = scheduler.add_interval_job(Run, minutes=60, args=())
while True:
sleep(60)
sys.stdout.write('.'); sys.stdout.flush()
我當我手動運行腳本時,不會出現任何錯誤,但沒有任何內容像我希望的那樣每小時運行一次。不知道我在做什麼錯在這裏...
更新:我收到以下錯誤:
def process_csv(path_to_csv):
ZN_ES_comb = pd.read_csv(path_to_csv)
# Insert your CSV processing here
ZN_ES_comb = pd.DataFrame(ZN_ES_comb)
ZN_ES_comb.to_csv(path_to_csv.replace('.csv', '_modified_{timestamp}.csv').format(
timestamp=time.strftime("%Y%m%d-%H%M%S")), index=False)
if __name__ == '__main__':
# Create CSV for demonstrating purposes
path_to_csv = 'C:\Users\cost9\OneDrive\Documents\PYTHON\Daily Tasks\ZN_ES\ZN_ES_15M\CSV\ZN_ES_comb.csv'
pd.DataFrame(ZN_ES_comb).to_csv(path_to_csv, index=False)
# Start scheduler
scheduler = BackgroundScheduler()
scheduler.start()
scheduler.add_job(func=process_csv,
args=[path_to_csv],
trigger=IntervalTrigger(seconds=2))
# Wait for 7 seconds so that scheduler can call process_csv 3 times
time.sleep(7)
錯誤是行「pd.DataFrame(ZN_ES_comb).to_csv(path_to_csv ,指數= FALSE)」 - 它說:
NameError: name 'ZN_ES_comb' is not defined
您好Tuomastik,謝謝,我仍然收到一個錯誤(顯示在上面原始發佈的編輯),我不知道爲什麼。我認爲我已經定義了ZN_ES_comb,但它並沒有認出它...... –
在我的示例中,我創建了CSV,僅用於演示目的,因爲代碼中的註釋說明如下。您已擁有自己的CSV,因此您可以跳過該部分。另外,在'process_csv()'函數中,'pd.read_csv()'返回'DataFrame',所以不需要這行'ZN_ES_comb = pd.DataFrame(ZN_ES_comb)'。我在下面的代碼片段中調整了我的代碼以適合您的具體情況:https://pastebin.com/rFiaYnD1 – tuomastik
謝謝!非常感激 –