gpt4 book ai didi

python - 如何在Python中使用shell命令分割文件

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:51 24 4
gpt4 key购买 nike

我有一个脚本,可以生成日志文件,然后通过电子邮件发送该文件 (AWS SES)。

有时生成的文件会变得很大,并且由于 SES 的限制是 10MB,我需要在发送之前将文件拆分为较小的文件。文件名定义:

import subprocess
import datetime

fileHandler = os.path.join('/tmp','error-' + datetime.datetime.utcnow().strftime('%Y-%m-%d') + '.log')

subprocess.Popen('split -b 9MB '+fileHandler)

当我执行这些行时,文件没有任何反应,并且我无法拆分它。我不确定如何在传递 python 变量(在本例中为 fileHandler 的变量)的同时执行 shell 命令

非常感谢任何建议。

最佳答案

根据子进程库的文档,我们必须以列表的形式传递参数,我一直使用它来运行shell命令,这可能是一个问题,只需尝试这个即可。还可以使用 MB 字节数代替 MB 关键字,即 9437184 表示 9MB。

subprocess.Popen(['split','-b','9437184',fileHandler])

希望它能成功..

此外 split 命令可能需要前缀来创建新文件。

split -b 22 newfile.txt new

它将文件 newfile.txt 拆分为三个单独的文件,分别称为 newaa、newab 和 newac...,每个文件包含 22 字节的数据。

所以你可能必须使用命令

subprocess.Popen(['split','-b','9437184',fileHandler,'anyprefix'])

关于python - 如何在Python中使用shell命令分割文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42765822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com