首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建用于批处理过程文件的perl脚本

创建用于批处理过程文件的perl脚本
EN

Stack Overflow用户
提问于 2011-03-18 02:53:05
回答 3查看 1.4K关注 0票数 1

我有这行代码:

代码语言:javascript
运行
复制
convert 1234_Page_1_....png 1234_Page_2_....png output.pdf 

这将这些特定的pngs合并到一个pdf中(使用ImageMagick)。我有很多这种格式的文件。我想执行这个合并/转换-pdf的行动,对文件有相同的号码之前的“页面”。有时需要转换的页面超过两页。

我希望在我可以在Windows上运行的perl脚本中完成这个任务。

谢谢你,杰克

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-18 04:30:15

如果您想在必要的情况下调用convert(1)几次:

代码语言:javascript
运行
复制
#! /usr/bin/perl

use strict;
use warnings;

my %processed = ();
for my $prefix (map { /^(\d+)/ } glob('[1-9]*_Page_*.png')) {
    next if $processed{$prefix}++;
    system("convert ${prefix}_Page_*.png ${prefix}_output.pdf");
}
票数 2
EN

Stack Overflow用户

发布于 2011-03-18 03:11:00

如果你有西格温 (也许明威也是?)已安装,请尝试如下:

代码语言:javascript
运行
复制
for i in `seq 1234 1350` ; do convert ${i}_Page_*.png ${i}_output.pdf ; done
票数 1
EN

Stack Overflow用户

发布于 2011-03-18 03:04:37

你不能用星号吗?我现在就试试。

代码语言:javascript
运行
复制
convert 1234_Page_*.png output.pdf

如果您想要可读的文件,请看这里:

代码语言:javascript
运行
复制
import os

for i in xrange(int(raw_input('How many sets of pages are there? '))):
  os.system('convert {0}_Page_*.png output_{0}.pdf'.format(str(i)))

这里有一条单线:

代码语言:javascript
运行
复制
python -c "import os; [os.system('convert {0}_Page_*.png output_{0}.pdf'.format(str(i))) for i in xrange(int(raw_input('How many sets of pages are there? ')))]"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5347553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档