如何在 Python 中 .write() 两个项目,一个零和一个迭代器?

How to .write() two items, a zero and an iterator in Python?

我这里可能有一个简单的格式问题 - 我想做一些类似 hrOut.write('0',i) 的事情,以便 add/preface 零到 'i'是一个时间戳,但我不知道正确的语法。我的代码如下。谢谢大家

hrIn = open('HrsInput.csv')
hrOut = open('HrsOutput.csv', 'wt')

for i in hrIn:
    if len(i) < 5:    
        hrOut.write('0', i)
    else:
        hrOut.write(i)

hrIn.close()
hrOut.close()

** 我最终发现填充技术有效。我可能被 excel 骗了,因为在记事本中显示了填充。

hrIn = open('HrsInput.csv')
hrOut = open('HrsOutput.csv', 'wt')

for i in hrIn:   
    hrOut.write("{}\n".format(i.rstrip().zfill(5)))

hrIn.close()
hrOut.close()

使用str.format:

hrOut.write('0{}'.format(i))

或删除 if/else 和填充:

for i in hrIn:   
    hrOut.write("{}\n".format(i.rstrip().zfill(5)))

zfill 只会为您的四个字符的时间添加一个零:

In [21]: "12:33".zfill(5)
Out[21]: '12:33'

In [22]: "2:33".zfill(5)
Out[22]: '02:33'

只是一个建议。做如下的事情怎么样。

(1) 在 ':' 上拆分时间戳。例如:

"1:20".split(':')[:1]

这将 return 1

(2) 然后使用 zfill 或 python 中的等效 sprintf。像 :

"%02d" % (1,)

or use zfill on the split string (1) like : 

"1".zfill(3)