[問題] 如何一次建立多個資料串流且進行操作

作者: LuLuCow   2016-07-12 18:16:31
是這樣的
我需要用到 subprocess.Popen(arg, stdout=data_stream, stderr=data_stream)
去存取某個 Linux 下應用程式的執行過程
我有一個自行建立的 IP List File
目的是要用來建立不同的資料串流
內容如下:
192.168.100.1
192.168.100.2
192.168.100.3
先用這個檔案藉由讀檔的方式
每一行切割,存到一個 list
接下來我從這個 list 要建立多個 data_stream
data_stream_list = []
for i in list:
data_stream = open("%s.log" % i, "a+")
data_stream_list.append(data_stream)
接著我用 data_stream_list[0] 嘗試用 writeline() 這個函數
發現這個物件沒有這個函數可以用
附帶一提我的編輯器是 pycharm,會是編輯器的問題嗎?
List 是不是沒辦法將裡面的每個元素是表示資料串流物件,進而做存取的動作
想請問有沒有其他的辦法可以達成我要的需求
後續還會需要針對每個獨立的資料串流寫入不同的資料
作者: kenduest (小州)   2016-07-12 21:03:00
老實說你的問題有看沒懂,不知道你的卡住點在哪
作者: LuLuCow   2016-07-12 22:57:00
我又補上了一些描述,謝謝
作者: MoriUmi (森海)   2016-07-12 23:37:00
看不懂+1 你的data_stream是檔案 要用read() write() 另外為什麼要把檔案塞到list? 感覺好怪 沒這樣寫過 這可以run? 為什麼不直接對檔案做讀寫就好了?
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2016-07-12 23:47:00
我用Idle這樣做是可以的..你要不要先確定你list裡面是塞了什麼物件更正 list內只有一個物件才行
作者: LuLuCow   2016-07-12 23:52:00
To MoriUmi:抱歉是我的失誤,第二段誤導了你,又改了一下描述To Sunal: 謝謝,我明天再試試看,是不是編輯器問題
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2016-07-13 00:02:00
第二次回圈的時候 data_stream_list[0]檔案就被關掉了哈 我也不知道我怎麼測的..應該是可以的搞笑了 你是要用writelines吧?以上當我說的都廢話就好XDXD 應該是沒writeline() method
作者: LuLuCow   2016-07-13 00:36:00
writelines 沒錯,少打了一個s我有嘗試過 write(),編輯器上也找不到可以用這個函式
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2016-07-13 01:08:00
實際測測看就知道了 應該是可以的
作者: kenduest (小州)   2016-07-13 02:03:00
該不會是說說自動補齊沒有找到這事情吧IDE 還沒有厲害到判斷並找到 list 內是放 open 開啟回傳的物件吧

Links booklink

Contact Us: admin [ a t ] ucptt.com