python 30 程序間的資料傳遞

2021-10-04 18:44:22 字數 1804 閱讀 3648

所謂資料傳遞,就是兩個程序都可以訪問這個資料,非修改。程序間資料傳遞有兩種方式。

1.與執行緒一樣,用queue

2.管道

1.queue

"""

程序1.匯入模組 是大寫的queue

2.定義子程序函式 傳入queue的變數值

2.1函式形參 ()傳入queue的變數值()

2.2 新增資料 qq.put()

3.建立程序

3.1 建立程序(乙個函式,乙個queue值)

3.2 啟動程序 p.start() 與執行緒一樣

3.3 得到值 p.get()

此**就是子程序裡新增資料

父程序訪問了這個資料

實現了程序間的資料互動

"""from multiprocessing import process, queue

def f_process(qq):

qq.put([42, none, 'hello'])

#process_main 主程序

#f_process 子程序

def process_main():

q_process = queue() #建立乙個程序的queue

p_process = process(target=f_process, args=(q_process,)) #建立乙個子程序p q_process 對應f_process的qq

p_process.start() #程序啟動

data =q_process.get() # 得到queue資料

print(data) # 列印data資料 [42, none, 'hello']

p_process.join()

if __name__ == '__main__':

process_main()

2. 管道

"""

資料傳遞:

1.建立管道 parent_conn, child_conn = pipe()

2.子發 f中 conn.send()

父收 f中 conn.recv()

3.兩邊次數要一樣,不一樣時會出現阻塞

資料共享:兩個程序可以修改乙份資料

"""from multiprocessing import process, pipe

def f(conn):

conn.send([42, none, 'hello']) #子程序 可傳送

redata=conn.recv() #子程序 可接收

conn.close()

if __name__ == '__main__':

parent_conn, child_conn = pipe() #1.建立乙個鏈路 父程序 子程序

p = process(target=f, args=(child_conn,))

p.start()

print(parent_conn.recv()) # 父程序 可接收 prints "[42, none, 'hello']"

parent_conn.send("父程序傳送資料") # 父程序 可傳送

p.join()

Python3 0的新改動

這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見 python3.0的文件。common stumbling blocks 本段簡單的列出容易使人出錯的變動 初學者應該注意 old print the answer is 2 2 new print the ...

python 3 0操作mysql資料庫

mysqldb目前還不支援python3.0,可以用pymysql代替 一 安裝方法 pip install pymysql 二 連線資料庫 import pymysql 開啟資料庫連線 db pymysql.connect 172.20.100.64 root coship cdnmsb021 使...

Python 3 0最簡單的爬蟲

做個小專案練練手,比較有動力繼續下去,這邊參考最簡單的爬蟲程式自己抄了一下。但是因為3.0的關係,無法直接使用,根據2.0版本的 進行修改後成功了。如下 coding utf 8 import urllib.request import re 該函式用於獲取html內容 使用到urlopen的函式 ...