簡體   English   中英

如何在Python中拆分數字后顯示前導零

[英]How to display leading zeros after splitting numbers in Python

在將數字拆分成Python 3.2中的前三位數和后兩位數之后,有什么方法可以顯示前導零? 我的腳本返回沒有前導零的數字......

我有一個看起來像這樣的csv文件:

Name,Code
blackberry,20001
wineberry,02002
rasberry,30000
blueberry,03010

我想要的輸出:

Name,Code,Code1,Code2
blackberry,20001,200,01
wineberry,02002,020,02
rasberry,30000,300,00   
blueberry,03010,030,10

我的劇本:

import csv
all = []
with open('aaa.csv','r') as csvinput:
    with open('bbb.csv', 'w') as csvoutput:
        reader = csv.reader(csvinput,delimiter=',')
        writer = csv.writer(csvoutput,delimiter=",", lineterminator='\n')
        row = next(reader)
        row.append('Code1')
        row.append('Code2')
        all.append(row)
        for row in reader:
            row.append(row[1][0:2])
            row.append(row[1][-2:])
            all.append(row)
        writer.writerows(all)
        print(all)

上面的腳本返回:

Name,Code,Code1,Code2
blackberry,20001,200,1
wineberry,02002,20,2
rasberry,30000,300,0    
blueberry,03010,30,10

csv.writer不會將字符串轉換為數字類型,因此不會導致您看到的錯誤。

我希望你在Excel中查看你的csv文件,它可以將字符串轉換為數字。 在文本編輯器中查看輸出,您應該看到前導零實際存在。

另外,正如其他人指出的那樣,你的第一個切片應該是row[1][0:3]

我無法看到您的代碼如何生成此輸出。 但糾正拼寫錯誤,將for循環更改for

    for row in reader:
        row = [r.strip() for r in row]
        row.append(row[1][0:3])
        row.append(row[1][3:])
        all.append(row)

應該工作,無論錯誤的空格可能會在一行結束時導致問題:

localhost-2:coding $ more bbb.csv 
Name,Code,Code1,Code2
blackberry,20001,200,01
wineberry,02002,020,02
raspberry,30000,300,00
blueberry,03010,030,10

PS:使用all作為變量名是個壞主意。 這是一個非常方便的內置的名稱。

暫無
暫無

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

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