1. 程式人生 > >Python中使用多程序複製檔案

Python中使用多程序複製檔案

使用fork()函式建立父子程序,父程序複製檔案的前半部分,子程序複製檔案的後半部分

#!/usr/bin/python
#coding=utf-8
import sys,os
#將第一引數作為原始檔,以讀寫模式開啟
try:                       
    fd_src = open(sys.argv[1],'r+')
except:
    print "open fd_src failed"

fd_src.seek(0,2)            # 將指標指到檔案末尾
size = fd_src.tell()       # 將檔案末尾的指標位置賦值給size,size即為檔案的總大小


try:                          # 將第二引數作為目標檔案以讀寫模式建立並開啟
    fd_dst = open(sys.argv[2],'w+')
except:
    print "open fd_dst failed"

size /= 2

pid = os.fork()

if pid < 0:
    print "fail to fork"
    exit(-1)
elif pid == 0:           #子程序,用來複制檔案的後半部分
    pass
    fd_src.close()        #將兩個檔案重新開啟,遊標調整到檔案的中間
    fd_dst.close()
    fd_src = open(sys.argv[1],'r+')
    fd_dst = open(sys.argv[2],'w+')
    fd_src.seek(size,0)
    fd_dst.seek(size,0)

    while True:
        buf = fd_src.readline()
        if buf == '':
            break
        fd_dst.write(buf)
    exit(0)

else:                                  #父程序,用來複制檔案的前半部分
    num = 0
    fd_src.seek(0,0)
    fd_dst.seek(0,0)
    print  'siza:',size
    while True:
        buf = fd_src.readline(1)
        num += len(buf)
        if num <= size:
            fd_dst.write(buf)
        else:
            break
    os.wait()
    exit(0)

相關推薦

Python使用程序複製檔案

使用fork()函式建立父子程序,父程序複製檔案的前半部分,子程序複製檔案的後半部分 #!/usr/bin/python #coding=utf-8 import sys,os #將第一引數作為原始

python程序(multiprocessing)

python中多程序(multiprocessing) 一、multiprocessing中使用子程序概念 from multiprocessing import Process 可以通過Process來構造一個子程序 p = Process(target=fun,args=(arg

Python程序的使用 Python執行緒(threading)與程序(multiprocessing )示例程式碼 Python程序程式設計

程序:程式的一次執行(程式載入記憶體,系統分配資源執行)。每個程序有自己的記憶體空間,資料棧等,程序之間可以進行通訊,但是不能共享資訊。 執行緒:所有的執行緒執行在同一個程序中,共享相同的執行環境。每個獨立的執行緒有一個程式入口,順序執行序列和程式的出口。 執行緒的執行可以被強佔,中斷或者暫時被

python程序的相關技術

--如何建立的子執行緒。self.pid = os.fork()if self.pid == 0:code = process_obj._bootstrap()sys.stdout.flush()sys.stderr.flush()os._exit(code)os for

Python程序在爬蟲的使用

本來這周準備寫一個整合ip池,多程序的高效爬取所有職位詳細資訊的爬蟲的,結果在多程序這一塊兒折騰了好久,簡直把我氣死,雖然內容其實不多,但把自己學習的過程寫下來,希望能幫到有同樣困惑的朋友。 我參照的是廖雪峰老師寫的一個Python教程,有興趣大家可以百度一下,我覺得還是挺

python程序+協程的使用以及為什麼要用它

前面講了為什麼python裡推薦用多程序而不是多執行緒,但是多程序也有其自己的限制:相比執行緒更加笨重、切換耗時更長,並且在python的多程序下,程序數量不推薦超過CPU核心數(一個程序只有一個GIL,所以一個程序只能跑滿一個CPU),因為一個程序佔用一個CPU時能充分

python3:程序複製檔案至手機

在最近的工作中又再次用到這個py指令碼,但由於機器太多,有更多的需求,故多了一些其它的需求: 1. 要求能自動檢測usb的連線情況 2. 多程序copy. 3. 在copy之前要先刪除一些檔案 4. copy完後要自動打檔案管理器進行升級,這個動作有好幾個點:    a.

python程序程式設計詳解

由於個人知識面有限,以下就說說我對python中多程序程式設計的理解,如果有錯誤的地方,請多多指教。 在python中有三種方式建立多程序:fork,process,pool 一: fork應用 import os import time print(

Python學習程序併發寫入同一檔案

最近學習了Python的多程序,想到我的高德API爬蟲那個爬取讀寫速度我就心累,實在是慢,看到多程序可以充分利用CPU核數我就開始完善我的程式碼,不過過程是艱辛的,在此之中出現了很多問題,其中最大的問題是爬取的資料是正確的,但是讀寫到Excel中卻開啟是空,想了半天也沒解決,腦子笨沒辦法,不過我

python執行緒與程序的選擇問題

多執行緒與多程序的選擇問題 既然python中多執行緒和多程序都能夠進行非同步操作,那麼到底應該如何選擇 首先我們必須知道GIL全域性解釋鎖對執行緒的影響,其同一時間只能夠允許一個執行緒進入cpu進行執行,因此對於cpu密集型的程式並不適用於多執行緒操作 cpu密集型的功能對cp

python爬蟲入門八:多程序/執行緒 python佇列Queue Python多執行緒(2)——執行緒同步機制 python學習筆記——多程序中共享記憶體Value & Array python多程序 Python多程序 Python 使用multiprocessing 特別耗記

什麼是多執行緒/多程序 引用蟲師的解釋: 計算機程式只不過是磁碟中可執行的,二進位制(或其它型別)的資料。它們只有在被讀取到記憶體中,被作業系統呼叫的時候才開始它們的生命期。 程序(有時被稱為重量級程序)是程式的一次執行。每個程序都有自己的地址空間,記憶體,資料棧以及其它記錄其執行軌跡的輔助資料

python執行緒,程序協程概念及程式設計上的應用

1, 多執行緒    執行緒是程序的一個實體,是CPU進行排程的最小單位,他是比程序更小能獨立執行的基本單位。  執行緒基本不擁有系統資源,只佔用一點執行中的資源(如程式計數器,一組暫存器和棧),但是它可以與同屬於一個程序的其他執行緒共享全部的資源。  提高程式的執行速率

python執行緒,程序協程概念及程式設計上的應用!

1, 多執行緒 執行緒是程序的一個實體,是 CPU進行排程的最小單位,他是比程序更小能獨立執行的基本單位。 執行緒基本不擁有系統資源,只佔用一點執行中的資源(如程式計數器,一組暫存器和棧),但是它可以與同屬於一個程序的其他執行緒共享全部的資源。 提高程式的執行速率,上下文切換快

python 程序實現檔案下載傳輸

需求: 實現資料夾拷貝功能(包括檔案內的檔案),並列印拷貝進度 模組: 利用 os模組 multiprocessing 模組 import multiprocessing import o

Python統計個Powerpoint檔案幻燈片總數量

晚上吃飯時突然想知道自己做了多少頁《Python程式設計》系列教材的配套PPT,於是就有了下面的程式碼,這套PPT綜合了《Python程式設計基礎》(ISBN:9787302410584)、《Python程式設計(第2版)》(ISBN:9787302436515)和《Pyt

利用python個txt檔案的資料進行篩選

一、問題描述 篩選出多個txt檔案中需要的資料 二、資料準備 這是我自己建立的要處理的檔案,裡面是隨意寫的一些數字和字母 三、程式編寫 import os def eachFile(filepath):

python mutilprocessing程序程式設計

  `為了更好的理解本文內容,請務必先了解Synchronization、Asynchronization、Concurrent、Mutex等基本概念    multiprocessing是一個類似於Threading模組的由API產生程序的包,關於Threading模組可以參

python個QPushButton響應同一個事件

python中多個QPushButton響應同一個事件 注:在python2 的環境下執行 #! -*- coding:utf-8 -*- from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayou

python程序模組multiprocessing

程序: python裡程序是multiprocessing模組 用法和多執行緒沒有什麼區別(os.getpid()是獲得程序號,ppid是父程序號) import time ,os import multiprocessing def f(name): time.sleep(

python生成個txt檔案

在win下建立多個.txt檔案,參考下面的程式碼 for i in range(1000): i_str = str(i+1) file_name = i_str+ '.txt' f = open('a/'+file_name,'w') f.close() 在