从Python中os模块中实用的文件和目录操作方法到Python内置变量

Python常用文件和目录操作函数

序号 方法及描述
1

os.access(path, mode)


检验权限模式
2

os.chdir(path)


改变当前工作目录
4

os.chmod(path, mode)


更改权限
5

os.chown(path, uid, gid)


更改文件所有者
6

os.chroot(path)


改变当前进程的根目录
7

os.close(fd)


关闭文件描述符 fd
8

os.closerange(fd_low, fd_high)


关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略
11

os.fchdir(fd)


通过文件描述符改变当前工作目录
12

os.fchmod(fd, mode)


改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。
13

os.fchown(fd, uid, gid)


修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。
14

os.fdatasync(fd)


强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。
15

os.fdopen(fd[, mode[, bufsize]])


通过文件描述符 fd 创建一个文件对象,并返回这个文件对象
19

os.fsync(fd)


强制将文件描述符为fd的文件写入硬盘。
20

os.ftruncate(fd, length)


裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。
21

os.getcwd()


返回当前工作目录
22

os.getcwdu()


返回一个当前工作目录的Unicode对象
28

os.listdir(path)


返回path指定的文件夹包含的文件或文件夹的名字的列表。
33

os.makedirs(path[, mode])


递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。
35

os.mkdir(path[, mode])


以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。
38

os.open(file, flags[, mode])


打开一个文件,并且设置需要的打开选项,mode参数是可选的
43

os.read(fd, n)


从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
45

os.remove(path)


删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
46

os.removedirs(path)


递归删除目录。
47

os.rename(src, dst)


重命名文件或目录,从 src 到 dst
48

os.renames(old, new)


递归地对目录进行更名,也可以对文件进行更名。
49

os.rmdir(path)


删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
56

os.tempnam([dir[, prefix]])


返回唯一的路径名用于创建临时文件。
57

os.tmpfile()


返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。
58

os.tmpnam()


为创建一个临时文件返回一个唯一的路径
60

os.unlink(path)


删除文件路径
61

os.utime(path, times)


返回指定的path文件的访问和修改的时间。
63

os.write(fd, str)


写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
64

os.path 模块


获取文件的属性信息。

重点关注:

常用函数如下:

os.getcwd() #返回当前工作目录,即cmd或终端中目录,而不是python命令或者执行py文件所在的位置。
os.chdir(path) #改变当前工作目录
os.path.abspath(path) #获取当前当前文件的绝对路劲 
os.path.dirname() #获取当前文件上一层目录
os.path.basename(a) #获取文件名称

os.path.abspath()返回绝对路径,但不处理符号链接(注意linux中的符号链接不同于windows中的快捷方式)

os.path.realpath()先处理路径中的符号链接,再返回绝对路径。

返回指定文件的标准路径,而非软链接所在的路径 Return the canonical path of the specified filename, eliminating any symbolic links encountered in the path.

在开发过程中,如果想要获取当前文件夹路径有两种方式:

常用的是

(1)

import os 
print(os.getcwd())

这种方法在当工作目录变化会发生变化,不够稳定。

(2)

import os
print(os.path.dirname(os.path.abspath(__file__))) #打印当前文件的绝对路劲,获取当前文件上一层目录

这种方法测试是稳定的。

Python内置全局变量

我们知道python自带一些内置的全局变量,比如__name__,__file__等。(注意:直接在终端中运行无__file__变量)。

在python中vars()函数可以查看内置全局变量,以字典方式返回内置全局变量。

#!/usr/bin/env python
# -*- coding:utf8 -*-
print(vars())
#输出
# {'__builtins__': <module 'builtins' (built-in)>, '__spec__': None, '__package__': None, '__doc__': None, '__name__': '__main__', '__cached__': None, '__file__': 'H:/py/index.py', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000AC32C66A58>}

__doc__ :获取文件的注释

#!/usr/bin/env python
# -*- coding:utf8 -*-
"""
这里是文件的注释
"""
print(__doc__)  #__doc__    :获取文件的注释
#输出
# 这里是文件的注释

__file__ 【重点】获取当前文件的路径

#!/usr/bin/env python
# -*- coding:utf8 -*-
print(__file__)  #__file__ :获取当前文件的路径
#输出
# H:/py/index.py

__package__ :获取导入文件的路径,多层目录以点分割,注意:对当前文件返回None

#!/usr/bin/env python
# -*- coding:utf8 -*-
print(__package__)  #注意:对当前文件返回None
from lib.ska import mk  #导入mk模块文件
print(mk.__package__) #__package__ :获取导入文件的路径,多层目录以点分割,注意:对当前文件返回None
#输出
# None
# lib.ska
# lib.ska

__cached__ :获取导入文件的缓存路径

#!/usr/bin/env python
# -*- coding:utf8 -*-
from lib.ska import mk  #导入mk模块文件
print(mk.__cached__) #__cached__ :获取导入文件的缓存路径
#输出
# H:\py\lib\ska\__pycache__\mk.cpython-35.pyc

__name__ 【重点】获取导入文件的路径加文件名称,路径以点分割,注意:获取当前文件返回__main__ 

#!/usr/bin/env python
# -*- coding:utf8 -*-
print(__name__) #注意:获取当前文件返回__main__
from lib.ska import mk  #导入mk模块文件
print(mk.__name__)  #获取导入文件的路径加文件名称,路径以点分割
#输出
# __main__
# lib.ska.mk

为了区分 主执行代码和被调用文件,Python引入了变量:__name__。

1)当文件是被调用时,__name__的值为模块名;

2)当文件被执行时,__name__的值为 ‘__main__’。

__name__  全局变量写在入口文件里,只有执行入口文件时的返回值才是__main__  ,如果入口文件被导入到别的文件里,此时入口文件的__name__返回值就不在是__main__,而是如果文件的路径加入口文件名称,所以我们可以用__name__全局变量来防止别人盗链入口文件。

__builtins__ 【重点】内置函数在这里面

附录:

在python中,查看内置函数、内置常量 
import builtins 
print(dir(builtins)) 

查看关键字 
import keyword 
print(keyword.kwlist)

猜你喜欢

转载自blog.csdn.net/answer3lin/article/details/84626848