windows下c 程式與python程式間通訊

2021-10-02 15:00:46 字數 1941 閱讀 2481

c++收

//server

//命名管道採用基於連線的可靠傳輸方式,只能一對一傳輸

#include #include #define buf_size 1024

using std::cerr;

using std::cout;

using std::endl;

int main()

else

//等待命名管道客戶端連線

if (::connectnamedpipe(h_pipe, nullptr))

else

}::closehandle(h_pipe);

::system("pause");

return 0;

}

python發

import os

f=os.

open

(r'\\.\pipe\mypipe'

,os.o_wronly)

os.write(f, b"this is test"

)

c++發

//client

#include #include #define buf_size 1024

using std::cerr;

using std::cout;

using std::endl;

int main()

else

else

}::closehandle(h_pipe);

}::system("pause");

return 0;

}

python 收

import win32file

import win32pipe

pipe_name = r'\\.\pipe\test_pipe'

pipe_buffer_size =

65535

while

true

: named_pipe = win32pipe.createnamedpipe(pipe_name,

win32pipe.pipe_access_duplex,

win32pipe.pipe_type_message | win32pipe.pipe_wait | win32pipe.pipe_readmode_message,

win32pipe.pipe_unlimited_instances,

pipe_buffer_size,

pipe_buffer_size,

500,

none

)try

:while

true

:try

: win32pipe.connectnamedpipe(named_pipe,

none

) data = win32file.readfile(named_pipe, pipe_buffer_size,

none

)if data is

none

orlen

(data)

<2:

continue

print

('receive msg:'

, data)

except baseexception as e:

print

("exception:"

, e)

break

finally

:try

: win32pipe.disconnectnamedpipe(named_pipe)

except

:pass

後面這個python接受到的資料後面還有其他亂碼,不知道是什麼情況

windows下清理svn資料夾的python指令碼

用svn也是不短的時間了,有喜有憂,其中匯出也是個麻煩事 資料夾裡很多不能上傳的資料夾都是設定的忽略 資料庫連線資訊等,由於用的是公用svn伺服器 匯出的話是看不到的,直接拷貝帶svn資料夾的源目錄,占用空間又至少是有用檔案的兩倍大小。於是次次搜尋.svn然後刪除 後來看到個新增滑鼠右鍵選單的reg...

windows下使用批處理檔案呼叫python程式

這個隨筆涉及到幾個批處理指令碼得知識點。windows的start命令,啟動另乙個視窗執行指定的程式或命令。windows的call命令,從批處理程式呼叫另乙個程式,直到被呼叫程式退出,再繼續原先的批處理程式 引數 windows,0為shell 本身,1為第1個引數,以此類推 linux,0為sh...

windows下c語言程式呼叫python實踐

目的 執行環境 注意點 在實際的工作中,為了方便利用python寫的程式 因為python中有很多功能強大的函式庫 有時需要進行c c 與python的混合程式設計,特別是需要在c程式中呼叫python指令碼。關於c程式呼叫python 除了官方文件,網上有很多好的文章可以參考,下面開展實踐,實驗的...