Python多个目录更新问题求助,python多个问题求助,from subproc


from subprocess import callimport osdef consistence(sourcedir, destinationdir):    sr = set(os.listdir(sourcedir))    de = set(os.listdir(destinationdir))    os.chdir(sourcedir)    for i in sr.difference(de):        call(('rm', '-rf', i))    for i in sr.intersection(de):        if os.path.isdir(i):            consist(sourcedir + '/' + i, destinationdir + '/' + i)    for i in de.difference(sr):        call(('cp', '-r', destinationdir + '/' + i, sourcedir))

我想将两个目录更新,但是两个目录下的相同目录就不行,不能更新共有目录下的文件

#!/usr/bin/env pythonfrom subprocess import callimport osimport sysdef consistency(sourcedir, destinationdir):    sourcedir = unicode(sourcedir)    destinationdir = unicode(destinationdir)    sr = set(os.listdir(sourcedir))    de = set(os.listdir(destinationdir))    if not sr and not de:        return    os.chdir(sourcedir)    for i in sr.difference(de):        call(('rm', '-rf', i))    for i in sr.intersection(de):        if os.path.isdir(sourcedir + '/' + i) and os.path.isdir(destinationdir + '/' + i):            consistency(sourcedir + '/' + i, destinationdir + '/' + i)    for i in de.difference(sr):        call(('cp', '-r', destinationdir + '/' + i, sourcedir))def main():    if len(sys.argv) > 3:        print "Error: at most 3 arguments"        print "Usage: consistency(source, destination)"        return 1    sourcedir = sys.argv[1]    destinationdir = sys.argv[2]    consistency(os.path.abspath(sourcedir), os.path.abspath(destinationdir))if __name__ == '__main__':    main()

搞掂

编橙之家文章,

评论关闭