2015-06-14 80 views
1

我正在從腳本中獲取Skype數據庫中的信息。 我得到了下面的代碼:python猜測具體路徑?

con = sqlite3.connect('C:\\Users\\joey\\AppData\\Roaming\\Skype\\jre93\\main.db') 

但是電腦的Skype的ID(jre93)和用戶(喬伊)總是不同的。有沒有一種方法可以通過用戶輸入自動識別這些路徑?

+1

你可以從'os.path'中獲得的主目錄expanduser home = expanduser(「〜」)'參見 http://stackoverflow.com/questions/4028904/how-to-get-the-home -directory-in-python –

+2

skype id很可能是Skype文件夾中的唯一目錄。如果有多個人可以檢查修改的最後日期或詢問用戶。 –

+1

@csmu感謝上次修改日期的提示:)!我不想問用戶他的Skype名稱 – joey

回答

2

通常名稱爲skype ID的文件夾包含main.db文件! 所以我們可以使用這個事實來獲得Skype的ID。

這樣做的一種方法是首先檢查該特定路徑上是否有任何skype文件夾。然後在skype文件夾中找到包含main.db文件的文件夾。如果找到一個文件夾,那麼這個文件夾的名稱就是Skype的ID。

我爲這項工作創建了一個小而快速的髒腳本。 (它可以進一步提高)

代碼:

import getpass 
import os 
import sys 

userName = getpass.getuser() #Get the username 
path = "C:\\Users\\"+userName+"\\AppData\\Roaming\\Skype\\" 

if (os.path.isdir(path)) == True: #Check if Skype folder exists 
    subdirectories = os.listdir(path) 
    for i in subdirectories: 
     if os.path.isdir(path+i) == True: 
      if os.path.exists(path+i+"\\main.db"): 
       print ("Skype Id is %s") %i 

else: 
    print 'Skype folder does not exists' 

我希望這是有益的。

+1

@ pss非常感謝! – joey