2012-09-26 27 views
1

這很可能是一件簡單的事情,但我沒有另一臺計算機來弄清楚它是我的筆記本電腦的Python版本。Python:內部定義的open()會導致「類型錯誤」,「參數不需要參數,給定1」

當我運行我的程序,我收到以下錯誤: 「類型錯誤:open()函數不需要參數(2給出)」

有問題的代碼片段:

import tkinter as tk 
    from tkinter import filedialog as fdg 

    def update_queue(): 
      conf_file = open("config.txt", "a") 
      fd = fdg.LoadFileDialog(master) 
      file = fd.go(pattern="*.jpg") 
      conf_file.write(file) 
      conf_file.close() 

我對於Python來說還不是太好,並且爲了open()函數失敗的原因,希望任何指針(「你的代碼看起來比昨天燒焦的意大利麪條更加複雜」)也很重要。另外值得注意的是,如果我在定義的函數之外打開文件,並且可以完成對它執行的所有操作,但是如果關閉文件,我無法從函數中重新打開該文件。我試圖使用os文件功能,但收到錯誤「LoadFileDialog不適用於緩衝區定義的文件功能」。可以理解的。

如果我使用conf_file.flush(),假設我在函數之外打開它,它會刷新我寫入/追加的任何內容,以便我可以稍後再讀取該文件?

編輯:我的意思是說,這項工作會一直在進行,還是會被認爲是黑客?

回答

0

是整個代碼?確保你沒有在別處導入另一個打開的函數。或重新定義它。

+0

你釘了它。我覺得自己很蠢,因此猜我應該檢查一下我的代碼。謝謝。 –

+0

不客氣。 – swang

0

假設的open()被宣佈以後,你只是沒有將其包含在代碼中,你可能宣佈它作爲

def open(): 
    #code here 

如果是這樣的話,你只是沒有加入聲明參數時的功能,它應該是:

def open(x, y): 
    #code here 

其中x和y可以是你喜歡的東西。

請回來併發布您的其他代碼(我非常懷疑這是所有問題)以獲得更好的答案。真正發生的事情最多隻是一個猜測。

相關問題