我已經寫在Python的幾行代碼,看看我是否可以把它讀取文本文件,做一個清單出來的,其中線清單自身,然後將所有內容都轉換回字符串,並將其作爲輸出寫入不同的文件。這可能聽起來很愚蠢,但想法是一旦列出項目就洗牌,我需要確保我可以先正確地進行閱讀和寫作。這是代碼:Python代碼不寫,除非運行到文件中解釋
import csv,StringIO
datalist = open('tmp/lista.txt', 'r')
leyendo = datalist.read()
separando = csv.reader(StringIO.StringIO(leyendo), delimiter = '\t')
macrolist = list(separando)
almosthere = ('\t'.join(i) for i in macrolist)
justonemore = list(almosthere)
arewedoneyet = '\n'.join(justonemore)
with open('tmp/randolista.txt', 'w') as newdoc:
newdoc.write(arewedoneyet)
newdoc.close()
datalist.close()
這似乎當我通過在解釋線運行線工作得很好,但是當我將它保存爲一個單獨的Python腳本並運行它(myscript.py)沒有任何反應。輸出文件甚至沒有創建。看了這裏提出的類似問題之後,我引入了'with'參數(在通過output = open()打開輸出文件之前),我已經嘗試刷新以及關閉文件...似乎沒有任何工作。獨立腳本似乎沒有多大作用,但如果代碼在解釋器上工作,代碼不會太錯誤,對吧?
在此先感謝!
P.S:我是新來的Python和相當新的編程,所以我道歉,如果這是由於基本問題的認識膚淺。
有沒有必要做'newdoc.close()' - 它會自行關閉,一旦你掉下來的'with'語句的結束。另外,你不需要使用'StringIO'''csv.reader(datalist,delimiter ='\ t')'就足夠了。 – lvc 2012-04-01 09:26:35
我已經把close()語句拿出來了,它仍然不起作用... – 2012-04-01 09:32:48