python的shutil模块

先import导入该模块

import shutil

一. copyfileobj

只复制文件内容,不负责权限

[root@rhel8 day05]# ls /opt
dc.txt  myweb.log  n1.log  n2.log  tc.txt
[root@rhel8 day06]# vim demo01.py 
import shutil
f1 = open("/etc/hosts",mode="r")
f2 = open("/opt/myhosts",mode="w")
shutil.copyfileobj(f1,f2)
f1.close()
f2.close()

[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ll /etc/hosts
-rw-r--r--. 1 root root 158 9月  10 2018 /etc/hosts
[root@rhel8 day06]# ls -l /opt |grep hosts
-rw-r--r-- 1 root root 158 12月 11 21:02 myhosts

二.copyfile

只需要输入源文件地址与目标

[root@rhel8 day06]# ll /opt/myls
ls: 无法访问'/opt/myls': 没有那个文件或目录
[root@rhel8 day06]# vim demo01.py
 import shutil
shutil.copyfile("/usr/bin/ls","/opt/myls")

[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ll /opt/myls
-rw-r--r-- 1 root root 166448 12月 11 21:08 /opt/myls
[root@rhel8 day06]# ll /usr/bin/ls
-rwxr-xr-x. 1 root root 166448 1月  11 2019 /usr/bin/ls

 三.copy

输入源文件地址与目标文件地址,复制内容和权限

[root@rhel8 day06]# ll /usr/bin/ls
-rwxr-xr-x. 1 root root 166448 1月  11 2019 /usr/bin/ls
[root@rhel8 day06]# ll /opt/myls2
ls: 无法访问'/opt/myls2': 没有那个文件或目录
[root@rhel8 day06]# vim demo01.py 
import shutil
shutil.copy("/usr/bin/ls","/opt/myls2")

[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ll /opt/myls2
-rwxr-xr-x 1 root root 166448 12月 11 21:11 /opt/myls2

四.move

文件的移动

[root@rhel8 day06]# ll /mnt/myls2
ls: 无法访问'/mnt/myls2': 没有那个文件或目录
[root@rhel8 day06]# vim demo01.py 
import shutil
shutil.move("/opt/myls2","/mnt/myls2")
[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ll /mnt/myls2
-rwxr-xr-x 1 root root 166448 12月 11 21:11 /mnt/myls2


 五.copytree

目录的复制

[root@rhel8 day06]# ls -l /opt/security
ls: 无法访问'/opt/security': 没有那个文件
[root@rhel8 day06]#  vim python3 demo01.py
import shutil
shutil.copytree("/etc/security","/opt/security")
[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ls  /opt/security
access.conf       console.perms    limits.conf     namespace.init  pwquality.conf.d
chroot.conf       console.perms.d  limits.d        opasswd         sepermit.conf
console.apps      faillock.conf    namespace.conf  pam_env.conf    time.conf
console.handlers  group.conf       namespace.d     pwquality.conf
#再次运行,查看结果[root@rhel8 day06]# python3 demo01.py 
Traceback (most recent call last):
  File "demo01.py", line 2, in <module>
    shutil.copytree("/etc/security","/opt/security")
  File "/usr/lib64/python3.6/shutil.py", line 321, in copytree
    os.makedirs(dst)
  File "/usr/lib64/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: '/opt/security'
文件报错,显示文件已存在,要保证目标文件不存在

 六.rmtree

删除目录

[root@rhel8 day06]# ls /opt/security/
access.conf       console.perms    limits.conf     namespace.init  pwquality.conf.d
chroot.conf       console.perms.d  limits.d        opasswd         sepermit.conf
console.apps      faillock.conf    namespace.conf  pam_env.conf    time.conf
console.handlers  group.conf       namespace.d     pwquality.conf
[root@rhel8 day06]# vim demo01.py 
import shutil
shutil.rmtree("/opt/security")
[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ls /opt/security/
ls: 无法访问'/opt/security/': 没有那个文件或目录

关于权限

 一.copymode

只复制权限

#先查看/opt/myhosts的权限,是644
[root@rhel8 day06]# ll /opt/myhosts 
-rw-r--r-- 1 root root 158 12月 11 21:02 /opt/myhosts
#再查看/usr/bin/ls的权限,是755
[root@rhel8 day06]# ll /usr/bin/ls
-rwxr-xr-x. 1 root root 166448 1月  11 2019 /usr/bin/ls
[root@rhel8 day06]# vim demo01.py 
import shutil
shutil.copymode("/usr/bin/ls","/opt/myhosts") #把644权限变成给755
[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ll /opt/myhosts 
-rwxr-xr-x 1 root root 158 12月 11 21:02 /opt/myhosts

 二.chown

修改属主和属组

[root@rhel8 day06]# useradd dc #增加dc用户 
[root@rhel8 day06]# vim demo01.py 
import shutil
shutil.chown("/opt/myhosts",user='dc',group='dc')
[root@rhel8 day06]# python3 demo01.py 
[root@rhel8 day06]# ll /opt/myhosts
-rwxr-xr-x 1 dc dc 158 12月 11 21:02 /opt/myhosts

相关推荐

  1. pythonshutil模块

    2023-12-12 03:26:04       53 阅读
  2. pythonshutil 压缩打包模块

    2023-12-12 03:26:04       28 阅读
  3. shutil模块

    2023-12-12 03:26:04       38 阅读
  4. python3 shutil排除特定或者模糊匹配文件或目录

    2023-12-12 03:26:04       21 阅读
  5. Pythonre模块

    2023-12-12 03:26:04       39 阅读
  6. Python 模块使用方法

    2023-12-12 03:26:04       65 阅读
  7. PythonOS模块

    2023-12-12 03:26:04       45 阅读
  8. Python模块与包

    2023-12-12 03:26:04       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 03:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 03:26:04       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 03:26:04       82 阅读
  4. Python语言-面向对象

    2023-12-12 03:26:04       91 阅读

热门阅读

  1. 231211 刷题日报

    2023-12-12 03:26:04       66 阅读
  2. 数据结构 | 快速排序(更正)

    2023-12-12 03:26:04       66 阅读
  3. Audio Signal (MATLAB) 代码学习1-常见问题

    2023-12-12 03:26:04       56 阅读
  4. MySQL-备份+日志:介质故障与数据库恢复

    2023-12-12 03:26:04       58 阅读
  5. 音频和视频的处理和分析(MATLAB)

    2023-12-12 03:26:04       54 阅读
  6. linux查看本机ip地址

    2023-12-12 03:26:04       61 阅读
  7. hadoop-hdfs简介及常用命令详解(超详细)

    2023-12-12 03:26:04       46 阅读
  8. vue中yarn install超时问题

    2023-12-12 03:26:04       59 阅读
  9. redis

    redis

    2023-12-12 03:26:04      67 阅读
  10. 朴素贝叶斯 Numpy实现高斯朴素贝叶斯

    2023-12-12 03:26:04       51 阅读
  11. 自定义插件vue-router简单实现hashRouter设计思路

    2023-12-12 03:26:04       43 阅读
  12. Linux网络编程:多播的使用

    2023-12-12 03:26:04       42 阅读