Python-как скопировать содержимое USB (Flash) в системный каталог


То, что я хочу запрограммировать,

Когда USB-накопитель подключен к системе, код должен автоматически инициироваться и копировать содержимое( каталоги, файлы и т. д.) usb-накопителя в каталог резервного копирования по умолчанию системы .

Я наткнулся на некоторые сайты и обнаружил, что могу использовать библиотеку shutil https://docs.python.org/2/library/shutil.html Файловые операции высокого уровня. Я не пользовался библиотекой шутил, так что есть ли другой способ достижение,

Кто-нибудь делал это раньше, поэтому, пожалуйста, помогите. Спасибо

3 2

3 ответа:

Я исправил это и решил, надеюсь, что это поможет тем ребятам, которые новички, как я.

Первый код для копирования файлов и каталогов с помощью shutil для получения дополнительной справки https://docs.python.org/2/library/shutil.html , подключите usb-накопитель для выполнения операции

Шаг 1 : code_to_copy.py

import os
import datetime
import shutil
from shutil import copytree, ignore_patterns

files = os.listdir('/media/user/')

destination = '/home/user/Path/Backup/back_%s'%datetime.datetime.now()
try :
    for f in files:
        source = '/media/user/%s' % f
        copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))    
except Exception as e:
    print e

Вы можете запустить этот файл, чтобы проверить, копируется он или нет, а затем

Создать файл bash

Шаг 2 : code_to_copy.sh

#!/bin/bash
python /home/user/path/code_to_copy.py

Убедитесь, что у вас есть права доступа к этим файлам

Шаг 3: добавить в cron
$ crontab -e

#add this line
* * * * * /home/user/path/code_to_copy.sh > /tmp/code_to_copy.log

# проверьте файл журнала в файле / tmp / code_to_copy.log

Через минуту данные подключенного устройства будут скопированы в папку резервного копирования и hola.

Вы можете использовать библиотеку pythons shutil, которая довольно проста в обработке операций копирования.Если вам нужно автоматизировать процесс, попробуйте выполнить следующие действия:

1: при получении всех файлов на флешке или любом другом съемном диске получить все файлы и записать его в список следующим образом:

import os
files = os.listdir('path-to-removable-media') 

2: как только это будет сделано, повторите список и используйте библиотеку shutil для копирования файлов.

 import shutil
 for f in files:
     shutil.copyfile('/source path/%s' % f, '/destination path/%s' %f)

3: Теперь, если вам нужно автоматизировать процесс, создайте файл bash (файл с расширением sh) с следующий контент в папке, где присутствует скрипт python.(пример: создать файл test.sh и копия следующая)

 #!/bin/bash
 clear
 python script.py 

4: затем добавьте это в свой cronjob, если вам нужно проверить или запустить в specificintervals, и если съемный носитель не подключен, исключительный случай также должен быть обработан.

5: для получения исходного кода Вы можете использовать подпроцесс в python.

import subprocess
output = subprocess.Popen("lsblk", stdout=subprocess.PIPE, shell=True)
for out in output.communicate()[0].split():
    if '/media/' in out:
        print out

Это даст путь съемных носителей в устройствах linux.

Это пример того, как скопировать файл на USB (съемное устройство) вы можете сделать инвертировать.

import os
file = "cat.jpg"
os.system("for /F \"tokens=1*\" %a in (\'fsutil fsinfo drives\') do (for %c in (%b) do (for /F \"tokens=3\" %d in (\'fsutil fsinfo drivetype %c\') do (if %d equ Removable (copy " + file + " %c))))")