0

私は次のようなものを使用しています:

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

しかし、fileA が最後に達し、2 バイトしか残っていない場合、問題が発生します。その場合、tmp の内容は次のようになります。

xx (Not XXXX any more)

そして、不足している x を 0 で補正したいので、次のようになります。

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 に答える