python脚本违反了命令行字符限制

kxeu7u2r  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(148)

我使用python脚本将不同文件夹中的许多图像批量转换为单个PDF(使用https://pypi.org/project/img2pdf/):

import os
import subprocess
import img2pdf 
from shutil import copyfile

def main():
    folders = [name for name in os.listdir(".") if os.path.isdir(name)] 
    for f in folders:
        files = [f for f in os.listdir(f)] 
        p = ""
        for ffile in files:
            p += f+'\\'  + ffile + " "                
        os.system("py -m img2pdf *.pn* " + p + " --output " + f + "\combined.pdf")

if __name__ == '__main__':
    main()

但是,尽管在windows 10上通过powershell运行该命令,并且尽管使用了非常短的文件名,但当图像数量非常高(例如超过600个左右)时,powershell仍会显示错误“命令行太长”,并且不会创建pdf。我知道命令行字符串有限制(https://docs.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/command-line-string-limitation),但我也知道,对于powershell,此限制更高(powershell避免cmd 8191字符限制),我无法确定如何修复脚本。我想问你,你是否可以帮助我修复脚本,以避免违反字符限制。非常感谢。
ps:我在将脚本插入包含图像文件夹的父文件夹后使用脚本;然后在每个子文件夹中创建输出pdf文件。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题