2013-08-18 33 views
-3

我有一組3(2,100,150)的數字,我想從一個.txt文件檢索和改變它們,然後把它們背部。我嘗試過數千件事,但我找不到任何東西。你怎麼能存儲和檢索號碼,並且還改變它們,在Python

這是一些代碼,我已盡力,所以如果有,我讓你可以請嘗試和糾正任何錯誤。

with open('bankstatmentrubyoscarpoints.py') as f: 
for ln in f: 
    a = [int(x) for x in ln.split()] 


    date = a[0] 
    credit = a[1] 
    balence = a[2] 
    ndate = raw_input('new date is') 
    ncredit = raw_input('the new credit is') 
    f.write('\n') 
    f.write(ndate) 
    f.write('\t') 
    f.write(ncredit) 
    f.write('\t') 
    f.write(nbalence)  

f.close 

所以一個答案將是驚人的!

+2

什麼不起作用? –

+0

如果僅僅是在文本文件中的數字,您可以通過刪除文件的內容:'開放(「bankstatmentrubyoscarpoints.py」,「W +」)' 現在,當你做你寫的東西時,該文件的內容應該被您正在添加的新項目覆蓋 – smac89

+0

歡迎使用堆棧溢出。請儘快閱讀[關於]頁面。我認爲你的評論'我嘗試了成千上萬的東西'是誇張的;它不可能被接受爲正確的面值。也許你應該說'我已經嘗試了很多東西' - 沒有人會爲此而質疑。你看過Python手冊的哪些部分?你認爲'r +'的優點是開放模式嗎?您的輸入似乎與一行中的所有數字一起出現;你的輸出似乎寫在三行上的數字。你應該選擇一種格式(工作)並堅持下去。 _ [... continue ...] _ –

回答

1

此代碼有三個問題:

  1. 無效縮進:with引入了一個新的塊(「套件」),並且必須至少有一個跟隨它縮進的語句。

  2. open('bankstatmentrubyoscarpoints.py')打開文件在讀取模式下的文本文件。您正在嘗試寫入。如果您想讀寫,則必須提供mode = 'rw'

  3. 您試圖關閉了with語句打開的文件。有聲明的一點是你不需要這樣做。另外,你實際上沒有調用f.close,因爲函數調用需要括號()

+1

只是一個更新,我在幾年前寫了這個代碼,正如你所看到的,我非常可怕,抱歉給你帶來了不便。 – oscarandersonbate

相關問題