我在bash脚本中使用 img2pdf 。该脚本在目录中计算jpg文件的数量(按升序编号),并使用img2pdf转换为pdf
numjpg=$(ls -l *.jpg | wc -l)
img2pdf --output my.pdf {1..$numjpg}.jpg
但上面的代码会产生以下错误
img2pdf:错误:参数infile:" {1..39} .jpg"不存在
这里给出文件范围的正确方法是什么?
答案 0 :(得分:2)
你为什么不这样做:
img2pdf --output my.pdf $(ls *.jpg|sort -n)
答案 1 :(得分:1)
我使用以下代码将图像文件转换为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}')