Bash img2pdf如何给出文件范围

Bash img2pdf如何给出文件范围,bash,image-processing,Bash,Image Processing,我正在bash脚本中使用img2pdf。该脚本统计目录中jpg文件的数量(按升序编号),并使用img2pdf将其转换为pdf numjpg=$(ls -l *.jpg | wc -l) img2pdf --output my.pdf {1..$numjpg}.jpg 但是上面的代码会产生以下错误 img2pdf:错误:参数infle:“{1..39}.jpg”不存在 在这里给出文件范围的正确方法是什么?为什么不: img2pdf --output my.pdf $(ls *.jpg|sort

我正在bash脚本中使用img2pdf。该脚本统计目录中jpg文件的数量(按升序编号),并使用img2pdf将其转换为pdf

numjpg=$(ls -l *.jpg | wc -l)

img2pdf --output my.pdf {1..$numjpg}.jpg
但是上面的代码会产生以下错误

img2pdf:错误:参数infle:“{1..39}.jpg”不存在


在这里给出文件范围的正确方法是什么?

为什么不:

img2pdf --output my.pdf $(ls *.jpg|sort -n)

你为什么不干脆做:

img2pdf --output my.pdf $(ls *.jpg|sort -n)

我使用以下代码将图像文件转换为pdf

import glob
import re
import img2pdf

dirname = 'C:/images/'
output  = 'C:/image/output.pdf'

# Get all the filenames
filenames = [f for f in glob.iglob(f'{dirname}*.jfif')]
# Sort filenames numerically
filenames = sorted(filenames, key=lambda x:float(re.findall("(\d+)",x)[0]))

with open(output,"wb") as f:
    f.write(img2pdf.convert(filenames))
print(f'Finished converting {output}')

我使用以下代码将图像文件转换为pdf

import glob
import re
import img2pdf

dirname = 'C:/images/'
output  = 'C:/image/output.pdf'

# Get all the filenames
filenames = [f for f in glob.iglob(f'{dirname}*.jfif')]
# Sort filenames numerically
filenames = sorted(filenames, key=lambda x:float(re.findall("(\d+)",x)[0]))

with open(output,"wb") as f:
    f.write(img2pdf.convert(filenames))
print(f'Finished converting {output}')

创建的pdf会有图像混乱,并且不会按照我想要的排序顺序进行排序。创建的pdf会有图像混乱,并且不会按照我想要的排序顺序进行排序。