圣者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2005-8-12
|
别用什么copy来拼文件了,保存下面这个脚本为py文件运行试试吧。
- #! python3
- # coding: utf-8
- import os, os.path
- SECT_SIZE = 2352
- def concat_files(output, input_list):
- base_snum = input_list[0][0]
- with open(output, 'wb') as fo:
- datalen = 0
- last_iname = ''
- for snum, iptname in input_list:
- dstlen = (snum - base_snum) * SECT_SIZE
- if dstlen > datalen:
- fo.write(bytes(dstlen - datalen))
- datalen = dstlen
- elif dstlen < datalen:
- print('warning: src file is bigger than expected:',
- last_iname, datalen - dstlen)
- last_iname = iptname
- with open(iptname, 'rb') as fi:
- iptdata = fi.read()
- fo.write(iptdata)
- datalen += len(iptdata)
- if __name__ == '__main__':
- concat_files(
- 'to.out', [
- (321, 't1.txt'),
- (322, 't2.txt'),
- (323, 't3.txt'),
- (324, 't1.txt'),
- ])
-
复制代码
自己改下底下的文件名和sect号。to.out那是输出文件名,t1.txt那一串是输入文件名,前面的321那一串数字是起始sect号。
注意,列表中的sect号一定要是从小到大顺着排的,不能错序。
如果有输入文件超了目标大小会报个警告,但是会继续把文件拼完。
|
|