在Linux上的某个文件夹中,我有文件* .eps,我想将它们转换为* .png并保留名称,例如:ball.eps to ball.png。我试图做:如何使用保存名称将eps文件转换为png文件?
convert *.eps *.png
但结果不满意。要做到这一点,我需要用Python或bash编写一些简单的脚本,那么我怎样才能从文件夹中获取文件名,例如在Python中?谢谢。
在Linux上的某个文件夹中,我有文件* .eps,我想将它们转换为* .png并保留名称,例如:ball.eps to ball.png。我试图做:如何使用保存名称将eps文件转换为png文件?
convert *.eps *.png
但结果不满意。要做到这一点,我需要用Python或bash编写一些简单的脚本,那么我怎样才能从文件夹中获取文件名,例如在Python中?谢谢。
编辑:如果你想文件名是相同的,我甚至不认为你需要一个循环。你可以这样做:
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
它。
尝试下面的脚本:
#!/bin/bash
for file in *.eps
do
filename=$(basename "$file")
filename=${filename%.*}
convert $file $filename.png
done
希望它应该为你工作。
for file in *.eps
给人以.EPS扩展名的文件的列表filename=$(basename "$file")
给出了文件filename=${filename%.*}
删除扩展.EPSconvert $file $filename.png
将文件转换为.png格式扩展