Python 疑问

查看 44|回复 2
作者:Canglin   
python 新手的一个小疑问:
with open(m4s_file_path, '+rb') as f:
file_read_cache = 1 * 1024 * 1024
file_size = f.seek(0, 2)
file_size = f.tell()
f.seek(0)
file = f.read(32)
if file[0:9] == b'000000000':
orglen = len(file)
file = re.sub(b'000000000|avc1', b'', file)
file = re.sub(b'$', b' ', file)
remove_orglen = orglen - len(file)
f.seek(32)
tail = f.read()
f.seek(0)
f.write(file + tail)
f.truncate(len(file) + len(tail) - remove_orglen)
sub_file = file[9:]
f.seek(0)
f.write(sub_file)
for i in range(file_read_cache, file_size,
file_read_cache):
chunks = f.read(file_read_cache)
f.seek(i)
f.write(chunks)
f.truncate(file_size - 9)
else:
pass
这是我写的一个小 Demo ,但是不知道为什么生成的合并文件种 file 与 tail 中间会有一个空格呢,该如何处理这个呢?
clino   
贴给智谱清言给的回答:
在你的代码中,出现空格的原因是你在使用 re.sub 函数替换内容时,将 $ 字符替换为了空格 b' '。在正则表达式中,$ 是一个特殊字符,代表字符串的末尾。所以当 re.sub 函数看到 $ 时,它会查找字符串的末尾并进行替换。
这里有一个小错误,你可能想要替换的是 b'000000000' 而不是 b'000000000|$'。让我们来修正这部分代码:
后面还给了三个问题的建议修复代码示例
channg   
问 chatgpt 一下就给你回答了
file = re.sub(b'$', b' ', file)
这里,你的目的是在 file 的末尾添加一个空格,但实际上这会在每次处理时添加一个空格到处理过的内容里。由于你在后续的操作中又将 file 写回了文件,这就导致了你观察到的现象。
但是我不知道回答的对不对
您需要登录后才可以回帖 登录 | 立即注册

返回顶部