>  기사  >  백엔드 개발  >  Python의 os 모듈에 대한 자세한 소개(코드 포함)

Python의 os 모듈에 대한 자세한 소개(코드 포함)

不言
不言앞으로
2019-01-28 11:09:413848검색

이 글은 Python의 os 모듈(코드 포함)에 대해 자세히 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

Python 표준 라이브러리의 os 모듈에는 일반적인 운영 체제 기능이 포함되어 있습니다. 이 모듈의 주요 목적은 플랫폼 독립적인 기능을 제공하는 것입니다. 즉, os 모듈은 플랫폼 간의 차이를 처리할 수 있으므로 작성된 프로그램이 변경 없이 다른 플랫폼에서 실행될 수 있습니다. 물론 이 모듈은 운영 체제 종속 기능을 사용하는 간단한 방법을 제공할 뿐입니다. 일부 특정 기능에는 특정 모듈을 사용해야 합니다. 예를 들어, 파일을 읽거나 쓰려면 open()을 사용하고, 파일 경로를 조작하려면 os.path 모듈을 사용하세요. 명령줄에서 모든 파일을 읽으십시오. 파일의 모든 줄에 대해 fileinput 모듈을 사용하십시오. 임시 파일 및 폴더를 생성하려면 quitil 모듈을 사용하십시오. os 모듈의 모든 내용을 알고 싶다면 dir(os) 메소드를 사용하여 볼 수 있습니다.

모듈 변수

os.error

내장된 OSError 예외에 대한 별칭입니다.

os.name

사용 중인 플랫폼을 나타내는 가져오기 종속 운영 체제 모듈의 이름입니다. 현재 등록된 이름은 'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'입니다.

os.environ#🎜🎜 #

매핑 객체는 환경을 나타냅니다. 예를 들어,eviron['HOME']은 자신의 홈 폴더 경로를 나타냅니다(일부 플랫폼에서는 지원되지만 Windows에서는 지원되지 않음). 이는 C의 getenv("HOME")과 일치합니다.

이 매핑 개체는 os 모듈을 처음 가져올 때, 일반적으로 Python을 시작할 때 site.py 처리 프로세스의 일부로 생성됩니다. 이 시간 이후에 환경을 변경하면 os.environ을 직접 수정하지 않는 한 os.environ에 영향을 미치지 않습니다.

참고: putenv()는 os.environ을 직접 변경하지 않으므로 os.environ을 수정하는 것이 가장 좋습니다.

참고: FreeBSD 및 Mac OS X를 포함한 일부 플랫폼에서는 Environ을 수정하면 메모리 누수가 발생할 수 있습니다. putenv()에 대한 시스템 문서를 참조하십시오.

putenv()가 제공되지 않으면 적절한 생성 프로세스 함수에 전달된 매핑의 수정된 버전으로 인해 하위 프로세스가 수정된 환경을 사용하게 됩니다.

이 플랫폼이 unsetenv() 기능을 지원하는 경우 매핑에서 항목을 삭제할 수 있습니다. pop() 또는clear()를 사용하여 os.environ에서 항목을 제거하면 unsetenv()가 자동으로 호출됩니다(버전 2.6).

os.curdir

운영 체제는 이 상수 문자열을 현재 폴더에 대한 참조로 사용합니다.

os.pardir

운영 체제는 이 상수 문자열을 상위 폴더에 대한 참조로 사용합니다.

os.sep

시스템은 이 문자를 사용하여 경로를 분할합니다.

os.altsep

시스템에서는 다른 문자를 사용하여 경로를 분할합니다. 분할 문자가 하나만 존재하는 경우 없음입니다.

os.extsep

기본 파일 이름과 확장자를 구분하는 문자입니다.

os.pathsep

시스템은 이 문자를 사용하여 POSIX의 ':', Windows의 ';' 등 검색 경로(예: PATH)를 분할합니다. os.path를 통해.

os.defpath

기본 검색 경로는 exec

p() 및 generatep(에 사용됩니다. ) 환경에 'PATH'가 없는 경우. os.path를 전달할 수도 있습니다.

os.linesep

현재 플랫폼의 개행 문자열입니다. POSIX에서는 'n'이고 Windows에서는 'rn'입니다. 텍스트 파일을 작성할 때 개행 문자(기본값)는 모든 플랫폼에서 대신 'n'을 사용합니다.

os.devnull

빈 장치의 파일 경로입니다. 예를 들어 POSIX에서는 '/dev/null'을 전달할 수도 있습니다.

파일 및 폴더

os.access(path, mode)

현재 uid/gid를 사용하여 경로에 액세스해 보세요. 대부분의 작업은 유효한 uid/gid를 사용하므로 사용자가 해당 경로에 액세스할 수 있는 경우 suid/sgid 환경에서 실행 환경을 시도할 수 있습니다. 모드가 F_OK이거나 테스트할 경로가 존재하거나 R_OK, W_OK 및 X_OK 또는 R_OK, W_OK 및 X_OK 중 하나 이상이 포함된 경로일 수 있습니다. 액세스가 허용되면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 자세한 내용은 Unix 수동 액세스(2)를 참조하세요. 유닉스, 윈도우에서 유효합니다.

*참고: *사용자가 인증되었는지 테스트하려면 access()를 사용하세요. 실제로 파일을 열기 위해 open()을 사용하기 전에 테스트하면 보안 취약점이 발생하기 때문입니다. 사용자 이 짧은 시간은 파일을 검색하고 열어 수정하는 데 사용됩니다. access()가 성공할 것이라고 나타내더라도 네트워크 파일 시스템에서와 같이 I/O 작업이 실패할 수 있습니다.

os.F_OK
作为access()的mode参数,测试path是否存在.
os.R_OK
包含在access()的mode参数中 , 测试path是否可读.
os.W_OK
包含在access()的mode参数中 ,测试path是否可写.
os.X_OK
包含在access()的mode参数中 ,测试path是否可执行.
os.chdir(path)

현재 작업 디렉터리를 변경합니다. 유닉스, 윈도우에서 유효합니다.

os.fchdir(fd)

열린 파일 설명자를 통해 현재 작업 디렉터리를 변경합니다. 유닉스에서 유효합니다. 관련 문서를 확인하세요.

os.getcwd()

Unix 및 Windows에서 유효한 현재 작업 디렉터리의 문자열을 반환합니다.

os.getcwdu()

현재 작업 디렉토리의 유니코드 객체를 반환합니다. 유닉스, 윈도우에서 유효합니다.

os.chroot(path)

루트 디렉터리를 path로 변경합니다. 유닉스에서 유효합니다. 관련 문서를 확인하세요.

os.chmod(path, mode)

改变path的mode到数字mode。在unix,Windows中有效。mode为下面中的一个 (在stat模块中定义)或者bitwise或者它们的组合:

?stat.S_ISUID
?stat.S_ISGID
?stat.S_ENFMT
?stat.S_ISVTX
?stat.S_IREAD
?stat.S_IWRITE
?stat.S_IEXEC
?stat.S_IRWXU
?stat.S_IRUSR
?stat.S_IWUSR
?stat.S_IXUSR
?stat.S_IRWXG
?stat.S_IRGRP
?stat.S_IWGRP
?stat.S_IXGRP
?stat.S_IRWXO
?stat.S_IROTH
?stat.S_IWOTH
?stat.S_IXOTH

*注: *尽管Windows支持chmod(), 你只可以使用它设置只读 flag (通过stat.S_IWRITE和stat.S_IREAD 常数或者一个相对应的整数)。所有其它的 bits都忽略了.

os.chown(path, uid, gid)

改变path的所属用户和组。在unix中有效,请查看相关文档.。

os.link(source, link_name)

在unix中有效,请查看相关文档.。

os.listdir(path)

返回path指定的文件夹包含的文件或文件夹的名字的列表。 这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。在unix,Windows中有效。

Changed in version 2.3:在Windows NT/2k/XP 和Unix, 如果文件夹是一个Unicode object, 结果将是 Unicode objects列表。不能解码的文件名将仍然作为string objects返回.

os.lstat(path)

像stat(),但是没有符号链接。 这是stat()的别名 在某些平台上,例如Windows。

os.mkfifo(path[, mode])

创建命名管道。在unix中有效,请查看相关文档.。

os.mknod(filename[, mode=0600, device])

创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。 mode指定创建或使用节点的权限, 组合 (或者bitwise) stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK, 和stat.S_IFIFO (这些常数在stat模块). 对于 stat.S_IFCHR和stat.S_IFBLK, 设备定义了 最新创建的设备特殊文件 (可能使用 os.makedev()),其它都将忽略。新增version 2.3。

os.major(device)

从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。新增version 2.3。

os.minor(device)

从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。新增version 2.3。

os.makedev(major, minor)

以major和minor设备号组成一个原始设备号。新增version 2.3.

os.mkdir(path[, mode])

以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。 在有些平台上, mode是忽略的. 当使用时。这当前的掩码值是first masked out。 在unix,Windows中有效。也可以用于创建临时文件夹; 查看tempfile模块tempfile.mkdtemp()函数。

os.makedirs(path[, mode])

递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。抛出一个error exception如果子文件夹已经存在或者不能创建。 默认的 mode 是 0777 (八进制). 在有些平台上, mode是忽略的。当使用时。这当前的掩码值是first masked out。

os.pathconf(path, name)

在unix中有效,请查看相关文档。

os.pathconf_names

在unix中有效,请查看相关文档。

os.readlink(path)

返回符号链接所指向的文件。在unix中有效,请查看相关文档。

os.remove(path)

删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。 这和下面的unlink()函数文档是一样的。在Windows,尝试删除一个正在使用的文件将抛出一个exception;在Unix,directory入口会被删除,但分配给文件的存储是无效的,直到原来的文件不再使用。 在unix,Windows中有效。

os.removedirs(path)

递归删除directorie。 像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。例如, os.removedirs('foo/bar/baz') 将首先删除 'foo/bar/baz', 然后删除 'foo/bar' 和 'foo' 如果它们是空的。 如果子文件夹不能被成功删除,将抛出OSError。

os.rename(src, dst)

重命名file或者directory src 到dst.如果dst是一个存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一个file,如果用户有权限的话,它将被安静的替换. 操作将会失败在某些Unix 中如果src和dst在不同的文件系统中. 如果成功, 这命名操作将会是一个原子操作 (这是POSIX 需要). 在 Windows上, 如果dst已经存在, 将抛出OSError,即使它是一个文件。 在unix,Windows中有效。

os.renames(old, new)

递归重命名文件夹或者文件。像rename()。新增version 1.5.2.

os.rmdir(path)

删除path文件夹. 仅当这文件夹是空的才可以, 否则, 抛出OSError. 要删除整个文件夹树, 可以使用shutil.rmtree(). 在unix,Windows中有效。

os.stat(path)

执行一个stat()系统调用在给定的path上。返回值是一个对象,属性与stat结构成员有关: st_mode (保护位), st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (所有用户的id), st_gid (所有者group id), st_size (文件大小, 以位为单位), st_atime (最近访问的时间), st_mtime (最近修改的时间), st_ctime (依赖于平台;在Unix上是metadata最近改变的时间,或者在 Windows上是创建时间):

import os
statinfo = os.stat('somefile.txt')
print statinfo

如果stat_float_times()返回True,time值是floats,以second进行计算。 一秒的小数部分也会显示出来, 如果系统支持. 在Mac OS, 时间常常是 floats。查看 stat_float_times() 获取更多信息。

在一些Unix系统上(例如 Linux), 下面的属性也许是有效的: st_blocks (为文件分配了多少块), st_blksize (文件系统blocksize), st_rdev (设备型号如果是一个inode设备). st_flags (用户为文件定义的flags)。

在unix,Windows中有效。

os.stat_float_times([newvalue])

决定stat_result是否以float对象显示时间戳。

os.statvfs(path)

在unix中有效,请查看相关文档.。

os.symlink(source, link_name)

创建一个符号链接。在unix中有效,请查看相关文档。

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

为创建一个临时文件返回一个唯一的path。在Windows使用TMP,依赖于使用的C库。在unix,Windows中有效。

警告: 使用tempnam() 对于symlink攻击是一个漏洞; 考虑使用tmpfile()代替。

os.tmpnam()

为创建一个临时文件返回一个唯一的path。在unix,Windows中有效。

*Warning: *使用tempnam() 对于symlink攻击是一个漏洞; 考虑使用tmpfile()代替.

os.TMP_MAX

tmpnam() 将产生唯一名字的最大数值。

os.unlink(path)

删除 file路径. 与remove()相同; 在unix,Windows中有效。

os.utime(path, times)

返回指定的path文件的访问和修改的时间。如果时间是 None, 则文件的访问和修改设为当前时间 。 否则, 时间是一个 2-tuple数字, (atime, mtime) 用来分别作为访问和修改的时间。在unix,Windows中有效。

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

输出在文件夹中的文件名通过在树中游走,向上或者向下。在根目录下的每一个文件夹(包含它自己), 产生3-tuple (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

dirpath是一个字符串, directory的路径. dirnames在dirpath中子文件夹的列表 (不包括 '.' '..')。filenames 文件是在dirpath不包含子文件夹的文件名的列表. 注: 列表中的names不包含path.为获得dirpath中的一个文件或者文件夹的完整路径 (以顶目录开始)或者, 操作 os.path.join(dirpath, name)。

如果optional参数topdown为True或者not指定, 一个directory的3-tuple将比它的任何子文件夹的3-tuple先产生 (directories 自上而下)。如果topdown为 False, 一个directory的3-tuple将比它的任何子文件夹的3-tuple后产生 (directories 自下而上)。

当topdown为True,调用者可以修改列表中列出的文件夹名字(也可以使用del或者slice), walk() 仅仅递归每一个包含在dirnames中的子文件夹; 可以减少查询, 利用访问的特殊顺序,或者甚至 告诉 walk() 关于文件夹的创建者或者重命名在它重新walk()之前。修改文件名当topdown 为False时是无效的, 因为在bottom-up模式中在dirnames中的directories比dirpath 它自己先产生 。

默认listdir()的errors将被忽略。 如果optional参数onerror被指定,它应该是一个函数; 它调用时有一个参数, 一个OSError实例. 报告这错误后,继续walk,或者抛出exception终止walk。注意filename是可用的的 ,exception对象的filename属性。

默认, walk() 不会进入符号链接 。新增version 2.6。

获取进程ID

os.ctermid()

返回进程控制终端的文件名。在unix中有效,请查看相关文档.。

os.getegid()

返回当前进程有效的group的id。对应于当前进程的可执行文件的"set id "的bit位。在unix中有效,请查看相关文档。

os.geteuid()

返回当前进程有效的user的id。在unix中有效,请查看相关文档。

os.getgid()

返回当前进程当前group的id。在unix中有效,请查看相关文档。

os.getgroups()

返回当前进程支持的groups的id列表。在unix中有效,请查看相关文档。

os.getlogin()

프로세스 제어 터미널에 로그인한 사용자의 이름을 반환합니다. 대부분의 경우 환경 변수 LOGNAME을 사용하여 사용자 이름을 얻거나 pwd.getpwuid(os.getuid())[0]를 사용하여 현재 유효 사용자 ID의 로그인 이름을 얻는 것보다 더 효과적입니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.getpgid(pid)

pid 프로세스의 그룹 ID를 반환합니다. pid가 0이면 현재 프로세스의 그룹 ID를 반환합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.getpgrp()

현재 프로세스 그룹의 ID를 반환합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.getpid()

현재 프로세스의 ID를 반환합니다. 유닉스, 윈도우에서 유효합니다.

os.getppid()

현재 상위 프로세스의 ID를 반환합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.getuid()

현재 프로세스 사용자의 ID를 반환합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

환경 변수

os.getenv(varname[, value])

값이 존재하지 않는 경우 환경 변수의 값을 반환합니다. , 기본값은 없음입니다. 대부분의 Unix 및 Windows 버전에서 유효합니다.

os.putenv(varname, value)

varname 환경 변수를 value로 설정합니다. 이 변경 사항은 os.system(), popen() 또는 fork() 및 execv()로 시작된 하위 프로세스에 영향을 미칩니다. 대부분의 Unix 및 Windows 버전에서 유효합니다.

putenv()가 지원되면 os.environ이 프로젝트를 할당할 때 적절한 putenv()가 자동으로 호출됩니다. 그러나 putenv()를 호출해도 os.environ이 업데이트되지 않으므로 os.environ 항목이 직접 설정됩니다.

프로세스 ID 설정

os.setegid(egid)

현재 프로세스의 유효 그룹 ID를 설정합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.seteuid(euid)

현재 프로세스의 유효 사용자 ID를 설정합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.setgid(gid)

현재 프로세스 그룹의 ID를 설정합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.setgroups(groups)

현재 프로세스에서 지원하는 그룹 ID 목록을 설정합니다. 그룹은 목록이어야 하며 각 요소는 정수여야 합니다. 이 작업은 슈퍼 사용자에게만 유효하며 Unix에서 유효합니다.

os.setpgrp()

사용되는 시스템 버전에 따라 시스템의 setpgrp() 또는 setpgrp(0, 0)()을 호출합니다. Unix 매뉴얼을 참조하십시오. Unix에서는 문서를 참조하십시오. os.setpgid(pid, pgrp)는 시스템의 setpgid()를 호출하여 pid 프로세스 그룹의 ID를 pgrp로 설정합니다. Unix 매뉴얼을 확인하십시오. Unix에서 유효하므로 관련 문서를 확인하십시오.

os.setreuid(ruid, euid)

현재 프로세스의 현재 유효 사용자 ID를 설정합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.setregid(rgid, egid)

현재 프로세스의 현재 유효 그룹 ID를 설정합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

os.getsid(pid)

호출 시스템의 getsid(). Unix 매뉴얼을 참조하십시오. Unix에서는 문서를 참조하십시오.

os.setsid()

호출 시스템의 setid(). Unix 매뉴얼을 참조하십시오. Unix에서는 문서를 참조하십시오.

os.setuid(uid)

현재 사용자 ID를 설정합니다. 유닉스에서 유효합니다. 문서를 참조하세요.

프로그램 반환 상태

os.strerror(code)

프로그램의 오류 코드에 대한 오류 메시지를 반환합니다. 일부 플랫폼에서는 알 수 없는 코드가 주어지면 strerror()가 NULL을 반환하고 ValueError가 발생합니다. 유닉스, 윈도우에서 유효합니다.

파일 관련 작업

os.umask(mask)

현재 권한 마스크를 설정하고 이전 권한 마스크를 반환합니다. 유닉스, 윈도우에서 유효합니다.

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

파일 설명자 기호 fd가 있는 열린 파일 객체를 반환합니다. mode 및 bufsize 매개변수는 내장 open() 함수와 동일한 의미를 갖습니다. 유닉스, 윈도우에서 유효합니다. 모드는 'r', 'w' 또는 'a'로 시작해야 합니다. 그렇지 않으면 ValueError가 발생합니다. 'a'로 시작하는 모드의 경우 파일 설명자의 O_APPEND 비트가 설정됩니다.

os.popen(command[, mode[, bufsize]])

명령에서 관리를 엽니다. 파이프 파일 객체에 대한 열린 연결을 반환합니다. 모드가 'r'(기본값)인지 'w'인지에 따라 파일 객체를 읽거나 쓸 수 있습니다. bufsize 매개변수는 내장된 open( ) 기능. 명령에 의해 반환된 상태(wait() 함수에 인코딩됨)는 파일 개체의 close()를 호출한 반환 값과 동일합니다. 단, 반환 값이 0(오류 없이 종료)인 경우 None이 반환됩니다. 유닉스, 윈도우에서 유효합니다. 버전 2.6에서는 더 이상 사용되지 않습니다. 하위 프로세스 모듈을 사용하십시오.

os.tmpfile()

(w+b) 개방 모드의 파일 객체를 반환합니다. 이 파일 객체에는 폴더 항목이 없으며 파일 설명자가 없습니다. 자동으로 삭제됩니다. 유닉스, 윈도우에서 유효합니다.

파일 설명자 작업

os.close(fd)

파일 설명자 fd 닫기는 unix 및 Windows에서 유효합니다.

os.dup(fd)

파일 설명자 fd의 복사본을 반환합니다. Unix 및 Windows에서 유효합니다.

os.dup2(fd, fd2)

필요한 경우 파일 설명자 fd를 fd2에 복사하고 먼저 unix 및 Windows에서 유효합니다.

os.fchmod(fd, mode)

파일 설명자가 fd인 파일의 'mode'를 mode로 변경합니다. chmod()에서 mode 값을 확인하세요. 문서. 유닉스에서 유효합니다. 문서를 참조하세요. 버전 2.6의 새로운 기능입니다.

os.fchown(fd, uid, gid)

改变文件描述符为fd的文件的所有者和group的id为uid和gid。 如果不想它们中的一个, 就设置为-1。在unix中有效,请查看相关文档。version 2.6中新增。

os.fdatasync(fd)

强制将文件描述符为fd的文件写入硬盘。不强制更新metadata。在unix中有效,请查看相关文档。注:在MacOS中无效。

os.fpathconf(fd, name)

返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。一些平台也定义了一些额外的名字。这些名字在主操作系统上pathconf_names的字典中。对于不在pathconf_names中的配置变量,传递一个数字作为名字,也是可以接受的。 在unix中有效,请查看相关文档。

如果name是一个字符串或者未知的,将抛出ValueError。如果name是一个特别的值,在系统上不支持,即使它包含在pathconf_names中,将会抛出错误数字为errno.EINVAL的OSError。

os.fstat(fd)

返回文件描述符fd的状态,像stat()。在unix,Windows中有效。 os.fstatvfs(fd) 返回包含文件描述符fd的文件的文件系统的信息,像 statvfs()。在unix中有效,请查看相关文档。

os.fsync(fd)

强制将文件描述符为fd的文件写入硬盘。在Unix, 将调用fsync()函数;在Windows, 调用 _commit()函数。

如果你准备操作一个Python文件对象f, 首先f.flush(),然后os.fsync(f.fileno()), 确保与f相关的所有内存都写入了硬盘.在unix,Windows中有效。

os.ftruncate(fd, length)

裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。在unix中有效,请查看相关文档。

os.isatty(fd)

如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。 在unix中有效,请查看相关文档。

os.lseek(fd, pos, how)

设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效。

os.write(fd, str)

写入字符串到文件描述符 fd中. 返回实际写入的字符串长度. 在unix,Windows中有效。

*注: *这函数是打算为低层 I/O服务的 ,同时必须应用在os.open()或者pipe()函数返回的文件描述符. 读取内建函数open()或者by popen()或者fdopen(),或者sys.stdin返回的一个“文件对象” , 使用它的read()或者readline()方法

下面的常数是open()函数的 flags参数选项. 它们可以使用 bitwise合并或者operator |。它们中的一些常数并不是在所有平台都有效. 它们更多使用请查看相关资料。

os.O_RDONLY
os.O_WRONLY
os.O_RDWR
os.O_APPEND
os.O_CREAT
os.O_EXCL
os.O_TRUNC

这些常数在Unix and Windows上有效。

os.O_DSYNC
os.O_RSYNC
os.O_SYNC
os.O_NDELAY
os.O_NONBLOCK
os.O_NOCTTY
os.O_SHLOCK
os.O_EXLOCK

这些常数仅在Unix上有效.

os.O_BINARY
os.O_NOINHERIT
os.O_SHORT_LIVED
os.O_TEMPORARY
os.O_RANDOM
os.O_SEQUENTIAL
os.O_TEXT

这些常数仅在 Windows上有效.

os.O_ASYNC
os.O_DIRECT
os.O_DIRECTORY
os.O_NOFOLLOW
os.O_NOATIME

这些常数是 GNU扩展,如果没有在C库声明刚没有.

os.SEEK_SET
os.SEEK_CUR
os.SEEK_END

lseek()函数的参数。 它们的值分别是 0, 1,和 2。在Unix and Windows上有效。版本2.5新增。

OS子模块:Path模块

os.path.abspath(path) #返回绝对路径
os.path.basename(path) #返回文件名
os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。
os.path.dirname(path) #返回文件路径
os.path.exists(path)  #路径存在则返回True,路径损坏返回False
os.path.lexists  #路径存在则返回True,路径损坏也返回True
os.path.expanduser(path)  #把path中包含的"~"和"~user"转换成用户目录
os.path.expandvars(path)  #根据环境变量的值替换path中包含的”$name”和”${name}”
os.path.getatime(path)  #返回最后一次进入此path的时间。
os.path.getmtime(path)  #返回在此path下最后一次修改的时间。
os.path.getctime(path)  #返回path的大小
os.path.getsize(path)  #返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)  #判断是否为绝对路径
os.path.isfile(path)  #判断路径是否为文件
os.path.isdir(path)  #判断路径是否为目录
os.path.islink(path)  #判断路径是否为链接
os.path.ismount(path)  #判断路径是否为挂载点()
os.path.join(path1[, path2[, ...]])  #把目录和文件名合成一个路径
os.path.normcase(path)  #转换path的大小写和斜杠
os.path.normpath(path)  #规范path字符串形式
os.path.realpath(path)  #返回path的真实路径
os.path.relpath(path[, start])  #从start开始计算相对路径
os.path.samefile(path1, path2)  #判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)  #判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2)  #判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path)  #把路径分割成dirname和basename,返回一个元组
os.path.splitdrive(path)   #一般用在windows下,返回驱动器名和路径组成的元组
os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)  #把路径分割为加载点与文件
os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames  #设置是否支持unicode路径名

위 내용은 Python의 os 모듈에 대한 자세한 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제