1. 程式人生 > >Python研究學習--37--控制檯內容輸出到本地檔案中

Python研究學習--37--控制檯內容輸出到本地檔案中

將控制檯內容輸出到本地txt檔案中,程式碼如下:
(在本系列第33篇中有用到)

class Output(object):
    # 控制檯內容生成txt報告
    def __init__(self, check_filename = "default.log"):
        self.terminal = sys.stdout
        self.log = open(check_filename, "w")
    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)
    def flush(self):         # 即時更新
        pass

Output('%s.txt' % name)

這段程式碼來源於網路,用著感覺還是很爽的。

but!它有一個隱藏很深的超級bug!即當一行內容超級長的時候,長到什麼程度呢?21寸顯示器,全屏txt文字,需要大約1.2螢幕。這時候這個bug就體現了,檔案內容顯示不全,存在長度限制,到某一點就自動沒有了。

也就是說:用該方法時,單行文字存在長度限制……

於是只能換一個方法:

result = "要寫入到檔案中到東西"
with open('name.txt', "w") as f:
    f.write(str(result)) 
f.close()

該方法不會有單行長度限制。

比較適用於JSON格式文字,因為JSON格式文字就是相當於單行,量大時該行就會非常非常長。