我试图将多个ts文件合并为一个,如果我尝试运行它,它给了我
UnicodeDecodeError:“ charmap”编解码器无法解码位置106的字节0x8f:字符映射到
count = 76
main = "tsPath/seg_768x432_725648_"
for x in range(count):
z = main+str(x)+".ts"
print(z)
with open(output, 'wb') as f:
with open(z) as fh:
f.write(fh.read())
好的,我现在看到了问题。
假设文件存在于您的计算机上,则以下代码将正常运行:
count = 76
main = "tsPath/seg_768x432_725648_"
with open(output, 'wb') as f:
for x in range(count):
z = main+str(x)+".ts"
print(z)
with open(z, 'rb') as fh:
f.write(fh.read())
注意,循环位于with
块内,而open(output, 'wb')
不是相反。之所以需要这样做,是因为每次以wb
模式打开文件时,文件中早先存在的所有数据都将被删除(与w
模式相同)。因此,我们只打开该output
文件一次即可写入。这将允许您从正在读取的文件中累积数据(这是您要执行的操作)。
默认情况下mode
,该open
函数的参数设置为r
(读取文本)。您正在读取二进制数据,因此请使用rb
模式。(其他答案正确地指出了这一点,但错过了第一点)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句