2015-06-14 42 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