如何使用WriteFile将数据写到文件末尾

如何使用WriteFile将数据写到文件末尾,第1张

方法1:用append模式打开文件,然后写入数据

方法2:用读写模式打开,使文件指针移动到文件末尾,然后写入数据

方法3:用读模式打开文件,用写和建立模式打开新文件,读取原文件内容,写入新文件,再将新文件中追加写入新的数据,将原文件改名为备份文件名,将新文件改名为原文件名

你这个问题正好我之前研究过。

TS视频文件合并的批处理命令是:

COPY /B 001.ts+002.ts... 合成后的文件名.ts

...代表后续的文件名,合成后的文件名.ts前面有个空格。

这样就能合成所有分段的ts视频文件了。

你下载下来的ts文件如果不是有规则的序号排列,那首先得先重命名处理,将其格式改成00001,00002类似的格式,这样便于用批处理文件去合成处理。推荐你一个更名软件:拖把更名器,好用。

另外如果你需要快速生成这个按序号排列的批处理文件(毕竟手输入很费事,尤其是大量分段视频文件的情况)你可以安装一个Python语言运行环境,然后在.py为后缀的脚本文件中输入这样的代码并运行:

* Last Edited 2017-05-11 11:17:20 *

### 生成TS分段视频合成批处理文件 ###

FileName="TS分段视频合成.CMD"

f=open(FileName.decode('utf-8'),'a+')       #追加式写入文档内容

MinVal=int(raw_input("输入文件名最小值:".decode('utf-8').encode('gbk')))  #输入内容必须为纯数字

MaxVal=int(raw_input("输入文件名最大值:".decode('utf-8').encode('gbk')))

ValDigit=int(raw_input("输入文件名长度:".decode('utf-8').encode('gbk')))  #不足的位以0填充

''' 写入TEXT内容 '''

f.write("COPY /B ")

while MinVal <= MaxVal:

    f.write(str(MinVal).zfill(ValDigit))    #写入填充后的数字字符串

    f.write(".ts")

    if MinVal != MaxVal: f.write('+')       #如果不是最后一串数字,末尾添加+

    MinVal+=1

f.write(" TMP.TS")

f.close()

他的作用是快速生成所需要的批处理合成文件,将这个文件放进你的.ts分段视频目录再运行就可以了。(确保你的文件名和批处理中的文件名一致)

我之前用批处理也写过一个这样的工具,后来硬盘坏了,那个文件丢失了,为了方便,我重新用Python写了个,毕竟Python写这样的工具更简单逻辑更清晰。

因为 f_in.read(temp, sizeof(temp))这句读的大小为temp的长度10,可能造成了后面的七个空格,因为实际字符串的长度,比如你这里是abc应该是长度len=3,那么temp后面七个位置都是'\0', 最后读出来就是空格,所以你读的时候可以将 f_in.read(temp, sizeof(temp))改成 f_in.read(temp,len)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11436143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存