Python 文件操作

来自CloudWiki
Cloud17讨论 | 贡献2020年3月30日 (一) 01:10的版本
跳转至: 导航搜索

引入模块

>>> import os

>>> import os.path

>>>import shutil #导入shutil模块

常用操作

创建文件

重命名文件

>>> os.chdir(r"D:\teaching\自动化运维\练习")

>>> os.rename("7-1.py","7.1.py")

>>> os.listdir('.')

['4-1.py', '5-1.py', '5-2.py', '5-3.py', '5-4.py', '5-5.py', '5-6.py', '5-7.py', '5-8.py', '6-1.py', '7.1.py', 'hamlet.txt']


文件路径拆解

查看文件类型

>>> os.path.isfile("7.1.py")

True

>>> os.path.isdir("7.1.py")

False

查看文件属性

对于linux中的文件或者目录中有3个时间,分别是:atime、ctime、mtime.[1]

  • atime:Access time,最后一次访问文件(读取或执行)的时间。
  • citme:Change time,最后一次改变文件(属性)或者目录(属性)的时间。
  • mtime:Modify time,最后一次改变文件(内容)或目录(内容)的时间。

查看文件修改时间,以mtime为例::

>>>os.stat('os_file.py')

os.stat_result(st_mode=33206, st_ino=1688849860659352, st_dev=477974576, st_nlink=1, st_uid=0, st_gid=0, st_size=47, st_atime=1525523817, st_mtime=1525523847, st_ctime=1525523817)

>>> os.stat('os_file.py').st_mtime

1525523817.8821363

>>> time.localtime(os.stat('os_file.py').st_mtime)

time.struct_time(tm_year=2018, tm_mon=5, tm_mday=5, tm_hour=20, tm_min=36, tm_sec=57, tm_wday=5, tm_yday=125, tm_isdst=0)

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.stat('os_file.py').st_mtime))

函数整理:

import time
import os
def file_modified_time(name):
    mt=os.stat(name).st_mtime
    mt2 =time.localtime(mt)
    mt3=time.strftime('%Y-%m-%d %H:%M:%S',mt2)
    return mt3



modified_time = file_modified_time('hamlet.txt')
print('hamlet.txt',"修改时间",modified_time)

移动文件

>>> os.rename("7.1.py",r"D:\teaching\自动化运维\7.1.py")

复制文件

>>> shutil.copyfile("7.1.py",r"D:\teaching\自动化运维\7.1.py")

'D:\\teaching\\自动化运维\\7.1.py'

查找文件

压缩解压缩文件

删除文件

获取文件属性:os.stat(file)

修改文件权限与时间戳:os.chmod(file)

终止当前进程:os.exit()

获取文件大小:os.path.getsize(filename)


创建文件 -- touch命令 1.2 查看文件类型 -- file命令 1.3 文件删除命令—— rm 1.4 文件移动命令 —— mv 1.5 文件复制命令 —— cp

   1.5.1 基本用法:复制一个源文件到目标文件(夹)
   1.5.2 复制多个文件到目标文件(夹)下
   1.5.3 复制文件当文件重叠时不提示
   1.5.4 递归复制源文件夹到目标文件夹下
   1.5.5 只有源文件较目标文件新时复制

1.6 文件操作命令 —— find命令 1.7 压缩及解压缩命令 —— gzip、bzip2 1.8 打包及压缩命令 —— tar


[1]Linux中的ctime、atime、mtime理解:https://blog.csdn.net/qq_36795474/java/article/details/80215856