2014-04-21 3 views
0

시작 프로세스에 들어 :파이썬 : 네트워크 드라이브를 통해 대용량 데이터 파일을 복사하는 동안

cmd=None 
if sys.platform.startswith("darwin"): cmd=['cp', source, dest] 
elif sys.platform.startswith("win"): cmd=['xcopy', source, dest, '/K/O/X'] 
if cmd: proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 

내가 피드백을 얻을 시작 프로세스에 후크 할 수있는 방법이 있는지 궁금 : 같은 네트워크 전송 데이터 속도로 ... 어떤 제안?

답변

1

이것은 당신이

if cmd: 
    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 
    result = proc.communicate()[0] 
    print result 

이 당신이 원하는 일을해야합니다 :) 원하는 것을해야한다.

+0

내가 명확히해야합니다 솔루션은 운영 체제의 "복사"명령에 적용 할 필요가있다 .. 뿐만 아니라 일반. Mac에서는 동일한 로컬 디스크에서 파일을 복사 할 때 '결과'변수가 0으로 생성됩니다. 나는 데이터가 네트워크 드라이브로 전송되었을 때 그것이 다른 것인지 확신하지 못한다. – alphanumeric

0

"피드백"의 의미는 모르지만 멀티 스레딩을 사용하여 현재 복사본 상태를 얻을 수 있습니다.

당신은이 링크를 클릭하면 더 많은 정보를 가지고

du -h file_name 

일을 계속 하나 개의 스레드를 가질 수 있습니다 - https://unix.stackexchange.com/questions/66795/how-to-check-progress-of-running-cp

+0

멀티 프로세싱의 풀을 사용하고 있기 때문에 그럴 수 있습니다 ... 감사합니다! – alphanumeric

관련 문제