with-statement

    5熱度

    1回答

    在尋找性能錯誤的過程中,我終於發現問題的根源在於contextlib包裝。開銷相當驚人,我沒有想到這會成爲經濟放緩的根源。經濟放緩幅度在50X的範圍內,我無法承受這種循環。我肯定會讚賞文檔中的一個警告,如果它有可能會讓事情變得如此之慢。 看來這已經知道自2010年以來https://gist.github.com/bdarnell/736778 它擁有一套標準,你可以嘗試的。運行前,請將fn更改爲

    4熱度

    2回答

    的Python 3.4提供了這個整齊的工具暫時將stdout: # From https://docs.python.org/3.4/library/contextlib.html#contextlib.redirect_stdout with redirect_stdout(sys.stderr): help(pow) The code不是超級複雜,但我不想把它一遍又一遍寫,尤其

    1熱度

    2回答

    我最近在Python的with-statement語句中遇到了一個奇怪的行爲。我有一個代碼,它使用Python的上下文管理器來回滾__exit__方法中的配置更改。經理在__exit__的finally塊中有return False值。我隔離在下面的代碼的情況下 - 唯一的區別是return語句的縮進: class Manager1(object): def release(self)

    1熱度

    1回答

    我試圖使用python with-statement(a.k.a.上下文管理器)來確保由server_socket.accept()創建的TCP連接套接字始終關閉。然而,明顯的形式不起作用,因爲accept()返回多個值。 有沒有辦法使用帶有多個返回值的函數with-statement? 下面是一個簡單的例子,我想使用類似註釋的代碼來替換try/finally塊。 #!/usr/bin/env p

    1熱度

    1回答

    我想搜索文件中的特定字符串,並基於該文件我必須處理文件數據。 我知道如何做2次打開文件。 這可以通過打開文件只有一次? 代碼: with open(path, "r") as _file: for line in _file: if "my_string" in line: flag = True break with open(path, "

    1熱度

    1回答

    與R工作組,這是一個真正的跆拳道: R> f_string <- 'Sepal.Length ~ Sepal.Width' R> l <- with(iris, lm(as.formula(f_string))) # works fine R> f_formula <- as.formula(f_string) R> l <- with(iris, lm(f_formula)) Erro

    0熱度

    2回答

    我的工作就像一個日誌組件,我想用這樣的: with logging.Log(context='A', message='msg1') # with1 do_stuff() 正如你可以看到日誌實現with語句的上下文管理。此外,Log將context存儲爲成員變量。比方說,我實現do_stuff如下: def do_stuff(): with logging.Log(mess

    1熱度

    4回答

    我有可定製的腳本,根據請求可以放棄3個不同的輸出文件。目前,我有: with open("option1", "w") as file1, open("option2", "w") as file2, open("option3", "w") as file3: 我運行到的是,如果不選擇該選項,仍然被創建的文件(因爲公開聲明的),它是想我避免這個問題。 天真什麼,我想我要的是沿着將被允許下面的

    0熱度

    2回答

    我是一個相對的Python新手,我對如何正確處理異常感到困惑。爲愚蠢的問題道歉。 在我的main()中迭代了一個日期列表,併爲每個日期調用一個函數,該函數從公共Web服務器下載一個csv文件。我想明確地理解異常,特別是因爲我不知道何時可以下載感興趣的文件。我的程序將作爲cron作業的一部分執行,並會嘗試每隔3小時下載這些文件(如果可用)。 我想要的是下載日期列表中的第一個文件,如果這導致404,那

    4熱度

    3回答

    我經常面臨的情況是,根據某些命令行參數,輸入可能來自文件或標準輸入。輸出也是一樣。我真的很喜歡Python 3中的上下文管理器的工作原理,因此試圖使我所有的open調用成爲with聲明的一部分。但在這種情況下,我遇到了麻煩。 if args.infile: with open(args.infile, "r") as f: process(f) else: pro