Python - 如何将USB(Flash)的内容复制到系统目录
Python - How to copy content of USB(Flash) to system directory
我要编程的是,
当USB 驱动器 连接到系统时,代码必须自动启动并且复制 内容(目录、文件etc.) 到 System.
的默认备份目录
我浏览了一些网站,发现我可以使用 shutil 库 https://docs.python.org/2/library/shutil.html
高级文件操作。我没用过Shutil Library,请问有没有其他方法可以实现,
以前有没有人这样做过,所以请帮忙。谢谢
您可以使用 pythons shutil 库,它处理复制非常简单 operations.If 您需要自动执行该过程,请尝试以下步骤:
1:如果获取 pendrive 或任何其他可移动驱动器中的所有文件,请获取所有文件并将其写入列表,方法如下:
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:现在,如果您需要自动执行该过程,请在存在 python 脚本的文件夹中创建一个 bash 文件(扩展名为 sh 的文件),其中包含以下内容。(例如:创建文件test.sh 并复制以下)
#!/bin/bash
clear
python script.py
4:如果您需要在特定的时间间隔内检查或 运行 并且如果可移动媒体未连接,则还需要处理异常情况,然后将其添加到您的 cronjob 中。
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 设备中的可移动媒体路径。
我已经修复并解决了这个问题,希望这对像我这样的初学者有所帮助。
首先我编写代码以使用 shutil 复制文件和目录以获得更多帮助https://docs.python.org/2/library/shutil.html,
连接U盘进行操作
第 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。
这是一个如何将文件复制到 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))))")
我要编程的是,
当USB 驱动器 连接到系统时,代码必须自动启动并且复制 内容(目录、文件etc.) 到 System.
的默认备份目录我浏览了一些网站,发现我可以使用 shutil 库 https://docs.python.org/2/library/shutil.html 高级文件操作。我没用过Shutil Library,请问有没有其他方法可以实现,
以前有没有人这样做过,所以请帮忙。谢谢
您可以使用 pythons shutil 库,它处理复制非常简单 operations.If 您需要自动执行该过程,请尝试以下步骤:
1:如果获取 pendrive 或任何其他可移动驱动器中的所有文件,请获取所有文件并将其写入列表,方法如下:
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:现在,如果您需要自动执行该过程,请在存在 python 脚本的文件夹中创建一个 bash 文件(扩展名为 sh 的文件),其中包含以下内容。(例如:创建文件test.sh 并复制以下)
#!/bin/bash
clear
python script.py
4:如果您需要在特定的时间间隔内检查或 运行 并且如果可移动媒体未连接,则还需要处理异常情况,然后将其添加到您的 cronjob 中。
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 设备中的可移动媒体路径。
我已经修复并解决了这个问题,希望这对像我这样的初学者有所帮助。
首先我编写代码以使用 shutil 复制文件和目录以获得更多帮助https://docs.python.org/2/library/shutil.html, 连接U盘进行操作
第 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。
这是一个如何将文件复制到 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))))")