我有目錄裏面the_files
一個文本文件,其中包含幾個行這樣芹菜如何實際執行任務?
aaaaabbbb cccc--ddddeee ffff
gggjjjkkk eers--kklliii kkll
...
我寫的操作在文本文件中的每一行芹菜腳本。
from celery import Celery
import os
app = Celery('tasks', broker='amqp://[email protected]//')
path = "the_files/"
@app.task
def do_task_txt():
dir_path = os.listdir(path)
for file in dir_path:
if file.endswith(".txt"):
f = open(path + file, "r")
for line in f:
string1 = line[0:14].replace(" ", "")
string2 = line[16:].replace(" ", "")
#print string1, string2
return string1, string2
f.close()
當我運行此腳本芹菜它提供了以下結果
[tasks]
. tasks.do_task_txt
[2017-03-22 13:51:00,713: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2017-03-22 13:51:00,791: INFO/MainProcess] mingle: searching for neighbors
[2017-03-22 13:51:01,966: INFO/MainProcess] mingle: all alone
[2017-03-22 13:51:02,055: INFO/MainProcess] [email protected] ready.
[2017-03-22 13:51:25,624: INFO/MainProcess] Received task: tasks.do_task_txt[77166520-21a8-466e-9522-cb2b1821a185]
[2017-03-22 13:51:26,152: INFO/PoolWorker-2] Task tasks.do_task_txt[77166520-21a8-466e-9522-cb2b1821a185] succeeded in 0.00866508999752s: ('aaaaabbbbcccc', 'ddddeeeffff')
只顯示第一行。
我希望得到它,以示對每一行或許這樣的可能?
[2017-03-22 13:51:26,152: INFO/PoolWorker-2] Task tasks.do_task_txt[77166520-21a8-466e-9522-cb2b1821a185] succeeded in 0.00866508999752s: ('aaaaabbbbcccc', 'ddddeeeffff'),('gggjjjkkkeers', 'kklliiikkll'),(.....,...)
我通過調用print string1, string2
檢查了我的腳本,它沒有打印結果正如我預料這樣
aaaaabbbbcccc ddddeeeffff
gggjjjkkkeers kklliiikkll
...
我的問題是如何芹菜執行任務?當我執行任務do_task_txt
時,它只顯示已被操作的文件中的一行。我如何顯示所有被操作的行而不是一行?
謝謝您的建議。