我使用的是:
tmp=fileA.read(4)
outfile.write(tmp)
但是如果fileA到达结尾并且只剩下2个字节就会出现问题。在这种情况下,tmp的内容将是
xx (Not XXXX any more)
我想用x补偿缺失的x,所以它可能就像
xx00
当我写入文件outfile
时问题是,我知道我可以使用功能
len(tmp)
要知道我需要添加多少0,有没有简单的方法来执行此添加操作?
我能想到
if len(tmp) == 2 : tmp = tmp + "00"
elif len(tmp) == 3: .......
但这是某种“愚蠢”的方法。
有没有办法像:
tmp << (4-len(tmp)) | "0000"
感谢您的帮助
答案 0 :(得分:9)
Str具有您正在尝试的功能:
tmp=fileA.read(4)
tmp.ljust(4, '0')
outfile.write(tmp)
例如:
'aa'.ljust(4, '0') => 'aa00'
答案 1 :(得分: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()