Being 全新的在 python 中,我试图对 python 中的一组文件运行命令。该命令需要源文件和目标文件(我实际上使用的是 imagemagickconvert
如下例所示)。
我可以提供源目录和目标目录,但是我不知道如何轻松保留从源目录到目标目录的目录结构。
例如。说srcdir
包含以下内容:
srcdir/
file1
file3
dir1/
file1
file2
然后我希望程序创建以下目标文件destdir
: destdir/file1
, destdir/file3
, destdir/dir1/file1
and destdir/dir1/file2
到目前为止,这就是我想出的:
import os
from subprocess import call
srcdir = os.curdir # just use the current directory
destdir = 'path/to/destination'
for root, dirs, files in os.walk(srcdir):
for filename in files:
sourceFile = os.path.join(root, filename)
destFile = '???'
cmd = "convert %s -resize 50%% %s" % (sourceFile, destFile)
call(cmd, shell=True)
walk方法不直接提供文件所在目录srcdir
除了将根目录字符串与文件名连接之外。是否有一些简单的方法来获取目标文件,或者我是否必须进行一些字符串操作才能做到这一点?
将循环更改为:
for root, dirs, files in os.walk(srcdir):
destroot = os.path.join(destdir, root[len(srcdir):])
for adir in dirs:
os.makedirs(os.path.join(destroot, adir))
for filename in files:
sourceFile = os.path.join(root, filename)
destFile = os.path.join(destroot, filename)
processFile(sourceFile, destFile)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)