如何将u1-publish-folder(Ubuntu One)递归到每个文件夹中

时间:2013-02-15 01:20:15

标签: python

如何将其扩展到目标文件夹中的每个文件夹? 你知道递归所有子文件夹中的每个文件。

http://bazaar.launchpad.net/~sil/+junk/utility-programs/view/head:/u1-publish-folder

2 个答案:

答案 0 :(得分:0)

如果我正确理解了脚本和您的问题,您可以使用这样的bash行来完成:

find /path/to/target-folder -type d -exec u1-publish-folder '{}' ';'

将以递归方式查找target-folder下的所有文件夹,并为其调用u1-publish-folder (但是不包括目标文件夹,你必须为它调用一次)
如果您明确地不想让脚本自行进行递归,请编辑您的问题 - 好吗?

答案 1 :(得分:0)

备选,如果你真的想修改脚本编辑底部如下:
(是的,抱歉双重发布,但这样可以保持清洁)

if __name__ == '__main__':
    if len(sys.argv) > 1:
        folder = sys.argv[1]
    else:
        print "Syntax: %s folder" % sys.argv[0]
        sys.exit(1)
    folder = os.path.realpath(folder)
    if not os.path.isdir(folder):
        print "%s is not a folder. Terminating." % (folder,)
        sys.exit(1)
    # walk all directories inside `folder`
    for (dirname, subdirs, files) in os.walk(folder):
        subdir = os.path.realpath(dirname)
        if not os.path.isdir(subdir):
            continue
        reactor.callWhenRunning(process_folder, subdir)
        reactor.run()

这应该与我的基于bash的答案相同,但只需简单调用 u1-publish-folder target-folder