2016-11-26 69 views
1

我想要做什麼:(Python)我如何自動移動創建的文件?

當打印的東西時,Windows會創建一個假脫機文件,你可以描述爲打印的文檔,你可以與其他軟件讀取的精確圖像。 Windows通常會在打印作業完成時刪除SPOOL文件,但可以使其不會刪除該文件,因此您可以確切知道PC上的任何打印機已經打印了什麼。

就我而言,我創建了自己的Google雲端硬盤帳戶,並在我的PC上安裝了Google雲端硬盤軟件。我還設置了Windows不刪除文件,以便在打印完成後將其保存在我的PC上。我們希望Python自動檢測創建的​​SPOOL文件(以.spl結尾)並將其複製到Google Drive。只要電腦啓動,該程序就應該從Windows開始,並完成其工作。如果可能的話,它還應該根據日期創建子文件夾。不知道它的重要性,但.spl文件都在system32的文件夾中(可能需要管理員權限)。

我曾嘗試:

首先我是個完整的新手在Python,所以你可能需要完全spoonfeed我在這件事上,我感到難過。我曾在Google上搜索過像「自動移動數據」這樣的變體,這些變體產生了很多廣泛的結果,但不會對我有用。所以,正如我所說,你可能不得不完全告訴我如何去做,但我會很感激。

我的設置

我有足夠的definetily馬力和拉姆安裝了Windows 7,它會是足以流暢運行腳本,因爲PC是一個工作站。我有python 3.5 32位安裝,如果需要我可以安裝64位。

在此先感謝

回答

1

這裏是一個快速的樣品我寫道:

import time 
import shutil 
import os 
import datetime 

source_path = r"C:\system32\whatever" 
dest_path = r"C:\asdf\myspecial_file" 

while True: 
    files = os.listdir(source_path) 
    for f in files: 
     if f.endswith('.spl'): 
      # get the current date 
      date = datetime.datetime.now().strftime('%d_%m_%Y') 
      new_path = os.path.join(dest_path, date, f) 
      src_path = os.path.join(source_path, f) 
      # create the folders if they arent already exists 
      os.makedirs(new_path) 
      shutil.copy(src_path, new_path) 
    time.sleep(10) # wait a few seconds between looking at the directory 

我用shutil lib添加到文件

複製,以在啓動時運行的腳本來看看: http://www.howtogeek.com/138159/how-to-enable-programs-and-custom-scripts-to-run-at-boot/

注意:您可能要刪除fa中的while True定期使用taskscheduler運行腳本。即使它有錯誤,它也會繼續運行。

+0

首先,謝謝!代碼是否還檢查複製的文件是否已經在dest路徑中? – diatomym

+0

它會覆蓋它 – DorElias

+0

啊好吧,因爲CPU使用率不是一個問題,這應該沒問題。另外,如何擴展此腳本以將其複製到更多目錄而不僅僅是dest路徑?我可以創建另一個dest_path並重復shutil.copy行嗎?再次感謝 – diatomym