2014-05-05 107 views
2

在Linux上的某个文件夹中,我有文件* .eps,我想将它们转换为* .png并保留名称,例如:ball.eps to ball.png。我试图做:如何使用保存名称将eps文件转换为png文件?

convert *.eps *.png 

但结果不满意。要做到这一点,我需要用Python或bash编写一些简单的脚本,那么我怎样才能从文件夹中获取文件名,例如在Python中?谢谢。

回答

2

编辑:如果你想文件名是相同的,我甚至不认为你需要一个循环。你可以这样做:

mkdir backup_directory && cp *.eps backup_directory 
mogrify -format png *.eps 

mogrify就像convert但就地修改文件,所以你需要备份它们在其他地方在这之前,如果你不想失去原件。在你试着将扩大到所有无处不在,你使用它的文件列表,这是不是有什么

for f in *.eps; do b=$(basename "$f" .eps); convert "$f" "$b".png; done 

通配符*


使用一个循环,你可以在bash做到这一点你要。通过使用循环变量"$f",而不是一次只处理一个文件。

您还可以避免调用basename及用途:

for f in *.eps; do convert "$f" ${f%eps}png; done 

这从文件名末尾切断eps,并增加了png它。

2

尝试下面的脚本:

#!/bin/bash 

for file in *.eps 
do 
    filename=$(basename "$file") 
    filename=${filename%.*} 
    convert $file $filename.png 
done 

希望它应该为你工作。

  1. for file in *.eps给人以.EPS扩展名的文件的列表
  2. filename=$(basename "$file")给出了文件
  3. filename=${filename%.*}删除扩展.EPS
  4. convert $file $filename.png将文件转换为.png格式扩展
原来的名字
相关问题