第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個進(jìn)程實時讀寫同一個文件

兩個進(jìn)程實時讀寫同一個文件

Go
心有法竹 2023-02-21 19:14:22
我有一個用例,其中一個運(yùn)行 python 的進(jìn)程將其執(zhí)行日志寫入一個文件。Goilang 中運(yùn)行的另一個進(jìn)程,想要實時讀取文件的內(nèi)容,例如日志流。但是為了讀取文件的內(nèi)容,似乎我必須等到 Python 進(jìn)程完成。有沒有辦法讓 python 進(jìn)程正常終止,最后生成日志文件,并將日志流式傳輸?shù)?golang 進(jìn)程?我的目的是讓python進(jìn)程日志流到golang進(jìn)程。
查看完整描述

1 回答

?
萬千封印

TA貢獻(xiàn)1891條經(jīng)驗 獲得超3個贊

1. 簡單的


如果您使用的是 Linux,則將日志從 Python 寫入標(biāo)準(zhǔn)輸出并使用管道。來源.py | 目標(biāo)(用go寫的)


package main


import (

"bufio"

"fmt"

"os"

)


/*

 Three ways of taking input

   1. fmt.Scanln(&input)

   2. reader.ReadString()

   3. scanner.Scan()


   Here we recommend using bufio.NewScanner

*/


func main() {

// To create dynamic array

arr := make([]string, 0)

scanner := bufio.NewScanner(os.Stdin)

for {

    fmt.Print("Enter Text: ")

    // Scans a line from Stdin(Console)

    scanner.Scan()

    // Holds the string that scanned

    text := scanner.Text()

    if len(text) != 0 {

        fmt.Println(text)

        arr = append(arr, text)

    } else {

        break

    }


}

// Use collected inputs

fmt.Println(arr)

}

用法:


echo "what a wanderful world" |./go-bin 

另請閱讀此Python redirect to StdOut


2.權(quán)利。


對于長時間運(yùn)行的進(jìn)程,使用命名管道可能更好。這是一個 linux 文件 (FIFO) GNU pipe。


Python 寫入此文件,Golang 讀取 go 中的 FIFO 示例


3. 可能矯枉過正。


編寫 Golang Web 服務(wù)器并從 python 調(diào)用服務(wù)器端點(diǎn)。


如果可以更改 Python 源代碼。


此解決方案還應(yīng)更加關(guān)注安全性。


查看完整回答
反對 回復(fù) 2023-02-21
  • 1 回答
  • 0 關(guān)注
  • 83 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號