浅谈Python文件操作

80 阅读2分钟

os.listdir()

['.DS_Store', 'test', '.localized', '$RECYCLE.BIN', 'sw1.txt', 'sw.py']

(2)文件/目录重命名os.rename

rename是用来修改文件/目录名的,比如,我们要把当前路径下的test1.txt改为test2.txt,把目录test修改成testdir

import os

os.listdir()

['.DS_Store', 'test1.txt', 'test', '.localized', '$RECYCLE.BIN', 'sw1.txt', 'sw.py']

os.rename('test1.txt', 'test2.txt')

os.listdir()

['.DS_Store', 'test', 'test2.txt', '.localized', '$RECYCLE.BIN', 'sw1.txt', 'sw.py']

os.rename('test', 'testdir')

os.listdir()

['.DS_Store', 'test2.txt', '.localized', '$RECYCLE.BIN', 'sw1.txt', 'sw.py', 'testdir']

(3)查看文件/目录信息stat

stat用来查看path路径目录和文件的信息

import os

os.listdir()

['.DS_Store', 'test2.txt', '.localized', '$RECYCLE.BIN', 'sw1.txt', 'sw.py', 'testdir']

os.stat('test2.txt')

os.stat_result(st_mode=33188, st_ino=27416129, st_dev=16777221, st_nlink=1, st_uid=501, st_gid=20, st_size=0, st_atime=1646026271, st_mtime=1646026271, st_ctime=1646026313)

os.stat('testdir')

os.stat_result(st_mode=16877, st_ino=27415773, st_dev=16777221, st_nlink=3, st_uid=501, st_gid=20, st_size=96, st_atime=1646025659, st_mtime=1646025676, st_ctime=1646026549)

返回属性解释如下

st_mode # 保护模式

st_ino # 索引号

st_dev # 设备名

st_nlink # 硬链接号

st_uid # 用户id

st_gid # 组id

st_size # 文件大小,单位是Byte

st_atime # 最后访问时间

st_mtime # 最后修改时间

st_ctime # 最后状态变化时间 Windows返回的是文件创建时间

3、shutil简单文件操作


(1)文件/目录的拷贝

实验路径:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

├── dstdir

│ └── dstfile.txt

└── srcdir

└── srcfile.txt

3 directories, 3 files

实验效果:

import shutil

shutil.copy('./srcdir/srcfile.txt', './dstdir/srcfile1.txt')

'./dstdir/srcfile1.txt'

shutil.copytree('./srcdir', './dstdir/srcdir2')

'./dstdir/srcdir2'

验证:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

├── dstdir

│ ├── dstfile.txt

│ ├── srcdir2

│ │ └── srcfile.txt

│ └── srcfile1.txt

└── srcdir

└── srcfile.txt

4 directories, 5 files

(2)文件/目录的剪切、重命名

实验路径:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

├── dstdir

│ └── dstfile.txt

├── name1file.txt

└── srcdir

└── srcfile.txt

3 directories, 4 files

实验效果:

import shutil

import os

os.listdir()

['.DS_Store', '.localized', '$RECYCLE.BIN', 'name1file.txt', 'srcdir', 'dstdir']

shutil.move('name1file.txt', 'name2file.txt')

'name2file.txt'

os.listdir()

['.DS_Store', 'name2file.txt', '.localized', '$RECYCLE.BIN', 'srcdir', 'dstdir']

shutil.move('./name2file.txt', './dstdir/name2file.txt')

'./dstdir/name2file.txt'

os.listdir()

['.DS_Store', '.localized', '$RECYCLE.BIN', 'srcdir', 'dstdir']

验证:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

├── dstdir

│ ├── dstfile.txt

│ └── name2file.txt

└── srcdir

└── srcfile.txt

3 directories, 4 files

剪贴目录实验:

import shutil

import os

os.listdir()

['.DS_Store', '.localized', '$RECYCLE.BIN', 'srcdir', 'dstdir']

shutil.move('./srcdir', './dstdir/')

'./dstdir/srcdir'

os.listdir()

['.DS_Store', '.localized', '$RECYCLE.BIN', 'dstdir']

验证:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

└── dstdir

├── dstfile.txt

├── name2file.txt

└── srcdir

└── srcfile.txt

3 directories, 4 files

(3)文件/目录的删除

目录结构:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

└── dstdir

├── dstfile.txt

├── name2file.txt

└── srcdir

└── srcfile.txt

3 directories, 4 files

os.unlink删除单个文件实验:

import shutil

import os

os.listdir()

['.DS_Store', '.localized', '$RECYCLE.BIN', 'dstdir']

os.unlink('./dstdir/srcdir/srcfile.txt')

验证:

username@usernamedeMacBookPro1 Downloads %tree

.

├── $RECYCLE.BIN

│ └── desktop.ini

└── dstdir

├── dstfile.txt

├── name2file.txt

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

了解详情:docs.qq.com/doc/DSnl3ZG…