0

我正在使用类似的东西:

tmp=fileA.read(4)
outfile.write(tmp)

但是如果 fileA 到达末尾并且只剩下 2 个字节,就会出现问题。在这种情况下, tmp 的内容将是

xx (Not XXXX any more)

我想用0补偿缺失的x,所以它可以像

xx00

当我写入文件 outfile

问题是,我知道我可以使用函数

len(tmp)

要知道我需要添加多少个 0,有没有简单的方法来执行此添加操作?

我能想到

if len(tmp) == 2 : tmp = tmp + "00"
elif len(tmp) == 3: .......

但这是某种“愚蠢”的方法。

有没有办法做到这一点:

tmp << (4-len(tmp)) | "0000"

谢谢你的帮助

4

2 回答 2

9

Str 具有您要执行的操作的功能:

tmp=fileA.read(4)
tmp.ljust(4, '0')
outfile.write(tmp)

前任:

'aa'.ljust(4, '0') => 'aa00'
于 2013-08-22T13:02:24.150 回答
2

查看简单的程序,其中“1.txt”包含一些字节数据,我们每个读取 4 个字节。

fp1 = open("1.txt", "r") 
fp2 = open("2.txt", "w")

while True:
    line = fp1.read(4).strip()  if not line: # end of file checking          break
    # filling remaining byte with zero having len < 4
    data = line.zfill(4)[::-1]
    print "Writting to file2 :: ", data
    fp2.write(line)
fp1.close() 
fp2.close()
于 2013-08-22T13:14:31.100 回答