Python:转换为str同时保持领先0

时间:2013-03-20 02:35:19

标签: python

所以在python中我试图以000X的顺序访问文件路径

所以我首先将字符串设置为

path = '0001'

然后指向并打开文件路径

filepath = open('/home/pi/Pictures' + path + '.JPG', 'rb')

所以我开展业务,现在想要访问扩展名0002的下一个文件

intpath = int(path)
intpath = intpath + 1
path = str(intpath)

我确信这是低效的,但我已经开始了。不幸的是,这使得路径'2'而不是'0002'....任何想法我如何能保持领先的零?

4 个答案:

答案 0 :(得分:3)

你可以使用这样的东西

>>> ['{0:04}'.format(i) for i in range(1, 15)]
['0001', '0002', '0003', '0004', '0005', '0006', '0007', '0008', '0009', 
 '0010', '0011', '0012', '0013', '0014']

答案 1 :(得分:2)

如果您知道需要4位数字,请使用字符串格式:

path = "%04d" % (intpath+1)

答案 2 :(得分:0)

我可能会使用其中一个,但为了完整性,还有zfill

'1'.zfill(4)

答案 3 :(得分:0)

str.format的另一个优点是可以轻松地对宽度进行参数化。如果您的Python为2.5或更高版本,则必须使用%格式

>>> ['{i:0{width}}'.format(i=i, width=4) for i in range(1, 15)]
['0001', '0002', '0003', '0004', '0005', '0006', '0007', '0008', '0009', '0010', '0011', '0012', '0013', '0014']