2013-04-30 4 views
0

Я пытаюсь скопировать мою информацию places.sqlite на рабочий стол с помощью python. Он сохраняется у пользователей \ username \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ rh425234.default \ places.sqlitePython: копирование файла с помощью shutil

Однако, что нужно, это os.walk от \ Profiles \ to \ places.sqlite и скопируйте его на рабочий стол. Это то, что я придумал:

dirs = '\\users\\username\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\' 
cop_dir = '\\users\\Desktop\\ 

for r,d,f in os.walk(dirs): 
    if 'places.sqlite' in f: 
     shutil.copy2('places.sqlite', cop_dir) 
     break 

Я думаю, что shutil.copy2 нужно место, чтобы скопировать из и места для копирования. Проблема в том, что я не знаю, как это сделать, не добавляя \ rh425234.default \ в каталог copy-from.

Я пытался что-то вроде:

a = os.getcwd() + str(os.listdir(os.getcwd())) 

положить в shutil.copy2 (а, cop_dir), но это не работает. Есть идеи?

+1

вы пробовали 'shutil.copy ('C:/Users/имя пользователя/AppData/Roaming/Mozilla/Firefox/Профайлы/places.sqlite ',' c:/users/username/desktop/') '? – Blender

+0

Между/Profiles и /places.sqlite есть папка, которой назначено случайное имя, так что это не работает. Я пытаюсь сделать это с предположением, что я не смогу узнать имя этой папки. – user2256199

+0

Вы можете использовать модуль 'glob' и использовать подстановочный знак:'/foo/*/bar' – Blender

ответ

0

Используйте os.path.join(), чтобы получить каталог:

dirs = '\\users\\username\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\' 
cop_dir = '\\users\\Desktop\\' 

for r,d,f in os.walk(dirs): 
    if 'places.sqlite' in f: 
     shutil.copy2(os.path.join(r, 'places.sqlite'), cop_dir) 
     break 
+0

Что именно делает 'r' в (os.path.join (r, 'places.sqlite') – user2256199

+0

@ user2256199 r - это просто переменная, которую вы использовали для первого возвращаемого значения os.walk, и удерживает текущий каталог, в котором находятся файлы (ваша переменная f). Os.path.jion склеивает их вместе. – tdelaney

0
for r,d,f in os.walk(dirs): 
    if 'places.sqlite' in f: 
     shutil.copy2(os.path.join(r, 'places.sqlite'), cop_dir) 
     break 

 Смежные вопросы

  • Нет связанных вопросов^_^