2015-04-23 39 views
1

我試圖將字符串轉換,如「AB0001」,以顯示爲「001」Python的談到一個串入並整數,同時保持前導零

我想一個整數:

x='AB0001' 
z=int(x[2:len(x)]) 

雖然我的輸出是:

1 

我需要這是一個整數中使用:

format_string=r'/home/me/Desktop/File/AB'+r'%05s'+r'.txt' % z 

謝謝您的時間,請讓我知道如何獲得以下結果:

format_string=r'/home/me/Desktop/File/AB0001.txt' 
+0

爲什麼它需要是一個整數? – MattDMo

+1

整數沒有前導零。我認爲你要找的是格式化爲具有前導零的字符串。 –

回答

4

你不能有前導零的所有python3和蟒2它們意味着octal號碼。如果你打算把它傳遞給一個字符串,只要把它保存爲一個字符串即可。

如果你想與0的墊可以zfill:

print(x[2:].zfill(5)) 

我不明白爲什麼你切在所有的思想,當你似乎想完全相同的輸出作爲原始字符串。

format_string=r'/home/me/Desktop/File/{}.txt'.format(x) 

會給你正是你想要的。

0

如果我理解正確,你會在字符串中使用int,對嗎?既然是這樣的話,你應該做的正是你在做什麼:

>>> x = 1 
>>> format_string = r'/home/me/Desktop/File/AB%04d.txt' % x 
>>> print(format_string) 
/home/me/Desktop/File/AB0001.txt 
>>> 

你不需要的變量作爲int存儲與格式001(你不能做反正)。當您創建format_string時,將其轉換爲該格式。

0

使用string-formatting通過.format()方法對此很有幫助。

x='AB0001' 
resulting_int_value =int(x[2:]) # omitting the last index of a slice operation will automatically assign the end of the string as the index 

resulting_string = r'/home/me/Desktop/File/AB{:04}.txt'.format(resulting_int_value) 

結果:

'/home/me/Desktop/File/AB0001.txt' 

這裏,{:04}是一個格式說明告訴串通過與多達4個前導零填充到格式化給定值。

因此,使用"{:04}".format(0)將導致字符串"0000"

相關問題