簡體   English   中英

保存以 0 開頭的數字時保留前導零

[英]Keep leading zeros when saving numbers that start with 0

我正在嘗試保存站點代碼列表,例如:

site_codes = [1302,9033,1103,5005,0016]

然后我想在運行網絡抓取之前將站點代碼添加到 URL,使用site_codes[i] ,例如:

for i in range(len(site_codes)): 
  
  Data_site_A.append("https://.../"+str(parameters[i])+"site="+str(site_codes[0]))
  Data_site_B.append("https://.../"+str(parameters[i])+"site="+str(site_codes[1]))

但是我不能像其他數字一樣將0016保存到列表中。 我嘗試了很多方法,包括:

# make a string
str("{0}{1}{2}".format(0,0,16))

# fill the 0
"%04d" % 16

但它們都返回'0016'而不是0016 因此,當我在網址中輸入'0016' ,它不起作用,因為它不是數字。

有沒有辦法像0016一樣保存這個數字? 或者因為print("%04d" % 16)會打印出一個純0016 ,有沒有辦法從那里保存輸出?

對於所需的輸出,計算機應將其解釋為:

"https://...."+str(parameters[i])+"site=0016")
# use regular expression

import re

site_codes = '''
         site code:
         site_A: 1302
         site_B: 9033
         site_C: 1103
         site_D: 5005
         site_E: 0016
         '''

site_codes = re.findall(r'\d+',site_codes)

for i in range(len(site_codes)): 
    Data_site_A.append("https://.../"+str(parameters[i])+"site="+str(site_codes[0]))
    Data_site_B.append("https://.../"+str(parameters[i])+"site="+str(site_codes[1]))

使用str.zfill()為數字添加前導零;
以數字為對象調用str(object)以將其轉換為字符串。
對數字字符串調用str.zfill(width)以將其填充為 0 到指定的寬度。

print(a_number)

OUTPUT=
123

a_number轉換為字符串

number_str = str(a_number)

用零到 5 位數字填充number_str

zero_filled_number = number_str.zfill(5)

print(zero_filled_number)

OUTPUT=
00123

假設您確實有一個不能作為字符串保留的整數列表並且想要創建 URL。 還假設您使用的是 Python 3.6 或更高版本,您可以使用簡單的f-string來實現這一點。

print(f"https://.../{str(parameters[i])}site={site_codes[1]:04d}")

這將填充前導零,而無需求助於 zfill。

或者,或者如果您在 3.6 以下運行 Python,這也將起作用:

print("https://.../{}site={:04d}".format(str(parameters[i]), site_codes[1]))

站點代碼為 16,以上兩者都會給你

https://.../parametersite=0016

暫無
暫無

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

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