簡體   English   中英

如何將數據從一個函數傳輸到另一個函數?

[英]How can I transfer data from one funtction to another?

我正在嘗試將從一個函數(讀取)接收到的數據傳輸到另一個(寫入)。 file.txt 中的現有數據應轉換為 json 格式並打印到控制台,該數據應由第二個函數獲取並寫入名為 pfile.txt 的文件中。 我只是不能讓他們一起工作。 當在普通 shell 中將每個函數作為命令單獨運行時,它們可以工作; 結合起來,沒有那么多。 我在這里缺少什么?

def reading():
    filename = 'file.txt'
    with open(filename, 'r') as f:
        print(json.loads(f.read()))
    reading()


def writing():

    with open('pfile.txt', 'w+') as pf:
      pf.write(reading() in writing())  <-- this doesn't work
      pf.write('hello SO') <-- this does work
    writing()

當您使用一對括號引用函數時,Python 將不帶參數調用該函數並解析它的返回值(如果有)。 這不是 bash; 函數將數據作為內存中的變量相互傳遞,而不是通過 stdin/stdout。

您編寫的代碼似乎充斥着無限循環(函數調用自己),並且可能會因“超出遞歸深度”錯誤而崩潰。 這些可以通過不調用自身內部的函數(或具有相互調用的函數循環)來修復。

您編寫的代碼不需要多個功能。 我會歸結為 1 個功能:

def read_and_write():
    filename = 'file.txt'
    with open(filename, 'r') as f:
        content = json.loads(f.read())
        print(content)
    with open('pfile.txt', 'w+') as pf:
        pf.write(content)

如果您需要兩個功能,請嘗試以下操作:

def read():
    filename = 'file.txt'
    with open(filename, 'r') as f:
        content = json.loads(f.read())
        return content

def write():
    content = read()
    with open('pfile.txt', 'w+') as pf:
        pf.write(content)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM