簡體   English   中英

從 a.txt 文件中提取信息並轉換為 int

[英]Extracting Info From a .txt File and Converting to int

我實際上是在嘗試編寫一個代碼,將我每晚的小費分成單獨的儲蓄計划,並將其寫入 a.txt 文件。

我在從文本文件中讀取舊總數並添加補充提示然后將產品重寫到 .txt 文件時遇到問題。

請告訴我這是否是一種荒謬的做事方式,我需要改變我的整個做事方式。

import re


savings1 = 0  
savings2 = 0
savings3 = 0
savings4 = 0
savings5 = 0
savings6 = 0

'initint' 接受該值。

initint = input('Please input todays tips, or Enter to exit:')

然后 while 循環將值划分為各個百分比並將它們分配給我的儲蓄計數器。

while initint != "":
    
    savings1 += (int(initint)*0.50)
    savings2 += (int(initint)*0.05)
    savings3 += (int(initint)*0.25)
    savings4 += (int(initint)*0.10)
    savings5 += (int(initint)*0.05)
    savings6 += (int(initint)*0.05)
    
    initint = input('Please input todays tips, or Enter to exit:')
    
    if initint == "":
        break

這就是(我認為)問題所在。

這個想法是使用正則表達式來識別 txt 文件中的數字,然后返回它們,這樣我就可以將它們添加到 while 循環划分的值中。

目前我只能打印它們。

with open('divisions.txt','r+') as r:
    for line in r:
        
        I = re.findall('\d+\d', line)
        
        print(I)

所以 output 現在看起來像這樣(如果舊輸入是 500)。

[]
[]
['250']
['25']
['125']
['50']
['25']
['25']

第一個問題是它正在返回列表。

第二個問題是它從前 2 行返回 2 個沒有數字的空列表,這有點奇怪。

我不知道我什至會用谷歌來開始這一步。


最后一步將總數寫入文本文件。


with open('divisions.txt','w') as f:
    
    f.write(f'Savings Plan:\n\nsavings1: {savings1}\nsavings2: {savings2}\nsavings3: {savings3}\nsavings4: {savings4}\nsavings5: {savings5}\nsavings6: {savings6}\n')

如果我很傻,請告訴我,但如果有人願意提供幫助,我將不勝感激。

謝謝閱讀。

您的正則表達式假定所有數字都是兩位數或更多,我會將其更改為r'\d+'

findall function 總是返回一個列表,但是你可以檢查長度是否大於0,並獲取第一個數字。

with open('divisions.txt','r+') as r:
    for line in r:
    
        I = re.findall(r'\d+', line)
        if (len(I) > 0):
            number = I[0]
            print(number)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM