2011-12-12 44 views
-1

我實現了一個函數來製作一個包裝器來寫入文件。這是代碼:Python 2.6.2:在192個字符處寫文件硬包裝

def writeStringToFile(thestring, thefile, mode='w'): 
    """Write a string to filename `thefile' to the directory specified in `dir_out'.""" 
    with open(os.path.join(dir_out, thefile), mode) as fh: 
     fh.write("{0}\n".format(thestring)) 

我發現,當我寫了192個字符的任意字符串,換行符插在人物192,導致我的輸出文件的硬包,我不想要的。

我查看了openwrite函數/方法的文檔,我沒有看到任何可以在任何行長度指定硬覆蓋的東西。

任何有助於解決這個問題的見解是值得讚賞的。

+2

我覺得這很令人驚訝。你確定它不是用來檢查包裝長行的輸出文件的編輯器/查看器嗎? – NPE

+0

@mpettis:現在。請刪除你的評論「看到我的編輯上面,這是我自己的愚蠢」。請將這些單詞放入您的答案 - 他們所屬的地方 - 並刪除評論。 –

回答

0

fh.write()將不會換行較長的行。有兩種可能性:

  1. thestring包含位置193
  2. 編輯器/瀏覽器,您使用的是檢查輸出文件包皮過長的線路嵌入式換行符。

通過輸出thestring的值,第一種可能性很容易消除。

通過查看十六進制查看器中的輸出文件(例如xxd)可以消除第二種可能性,以查看無關的換行符是否實際上是文件的一部分,或者僅僅是顯示器假象。

1

我自己的愚蠢 - 我寫的字符串中有字符序列\n,python正確地將它們解釋爲換行符。我需要在我的字符串中逃避它們。如果它沒有被回覆,我會把這篇文章記下來。

相關問題