相关疑难解决方法(0)

Python Subprocess.Popen来自一个线程

我正在尝试使用子进程模块和线程内的Popen启动'rsync'.在我调用rsync之后,我还需要读取输出.我正在使用通信方法来读取输出.我不使用线程时代码运行正常.看来,当我使用一个线程时,它会挂在通信呼叫上.我注意到的另一件事是,当我设置shell = False时,在线程中运行时,我从通信中得不到任何回报.

python rsync multithreading subprocess

27
推荐指数
2
解决办法
5万
查看次数

从python subprocess.call调用rsync

我正在尝试从python脚本中的子进程执行ssh上的rsync,以将图像从一个服务器复制到另一个服务器.我有一个函数定义为:

def rsyncBookContent(bookIds, serverEnv):
    bookPaths = ""
    if len(bookIds) > 1:
        bookPaths = "{" + ",".join(("book_"+str(x)) for x in bookIds) + "}"
    else:
        bookPaths = "book_" + str(bookIds[0])

    for host in serverEnv['content.hosts']:
        args = ["rsync", "-avz", "--include='*/'", "--include='*.jpg'", "--exclude='*'", "-e", "ssh", options.bookDestDir + "/" + bookPaths, "jill@" + host + ":/home/jill/web/public/static/"]
        print "executing " + ' '.join(args)
        subprocess.call(args)
Run Code Online (Sandbox Code Playgroud)

我最终要做的是让Python执行这个(它来自bash shell):

rsync -avz --include='*/' --include='*.jpg' --exclude='*' -e ssh /shared/books/{book_482,book_347} jill@10.12.27.20:/home/jill/web/public/static/
Run Code Online (Sandbox Code Playgroud)

确实,我的印刷声明输出:

executing rsync -avz --include='*/' --include='*.jpg' --exclude='*' -e ssh /shared/books/{book_482,book_347} jill@10.12.27.20:/home/jill/web/public/static/ …
Run Code Online (Sandbox Code Playgroud)

python rsync arguments subprocess call

13
推荐指数
1
解决办法
7751
查看次数

如何跟踪Dropbox等文件的更改?

任何人都知道如何在文件被修改时执行方法(python),如Dropbox和他的连续数据保护机制,可以准确地跟踪文件的修改和同步.

当然它不是整个硬盘,而是指定目录上的轨道.

OBS:适用于Windows和Linux操作系统.Mac是一个加号;)

python dropbox

4
推荐指数
1
解决办法
3430
查看次数

标签 统计

python ×3

rsync ×2

subprocess ×2

arguments ×1

call ×1

dropbox ×1

multithreading ×1