首页 > 代码库 > Python——os(二)文件对象

Python——os(二)文件对象

  本节介绍 os 模块创建 file 对象的函数

 

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

  用文件描述符打开文件,返回一个连接到 fd 的打开的文件对象,参数 mode 和 bufsize 与Python内置函数 open() 的对应参数含义相同,如果 fdopen() 抛出异常, fd 对应的文件处于未关闭的状态。

  适用于: Unix, Windows.

  Changed in version 2.3: 如果指定了参数 mode ,那么该参数必须以‘r‘、‘w‘或‘a‘之一开头,否则抛出异常 ValueError

  Changed in version 2.5: 在 Unix 上,如果参数 mode 以 ‘a‘ 开头,则会在文件描述字上设置 O_APPEND 标志。

 

 os.tmpfile() 

  以更新模式(w+b)返回一个新的临时文件对象,该文件没有路径入口,一旦文件描述字丢失,该文件会被自动删除。

  适用于: Unix, Windows.

  
弃用声明
下面的所有函数都已过时,使用 subprocess 模块!
  
 os.popen(command[, mode[, bufsize]])     
  
  打开一个连接到(从/到)参数 command 的管道,返回一个打开的文件对象,该对象连接到管道,管道的读写属性由参数 mode 指定——‘r‘ (默认) 或 ‘w‘。 
  参数 bufsize 与内置函数open()的对应参数作用相同,参数 command 的退出状态(以 wait() 中指定的格式编码) 可以用作文件对象的 close() 方法的返回值,返回状态为0(正常退出)除外,此时返回None。  
  适用于: Unix, Windows.
  
下面是一些过时的 popen*() 函数,用来创建子进程并执行命令
  
  下面三个函数的参数 bufsize 指示管道的I/O缓冲大小;参数 mode 应该是 ‘b‘ 或 ‘t‘,在 Windows 上需要该选项来判断文件对象是以字节还是文本格式打开,默认为 ‘t‘。在 Unix 上参数 cmd 可能是一个 sequence,也就是说参数直接传给程序而不需要 shell 的干预(同 os.spawnv()). 如果参数 cmd 是一个字符串,它将被传给 shell (同 os.system())。
  这些方法都无法获取子进程的退出状态,想要同时控制输入、输出和获取返回值需要使用 subprocess 模块。
  关于使用这些函数可能引起的死锁,详见 Flow Control Issues
  
 os.popen2(cmd[, mode[, bufsize]]) 
  
  作为子进程执行 cmd ,返回 file 对象 (child_stdin, child_stdout).
  适用于: Unix, Windows.
  
 os.popen3(cmd[, mode[, bufsize]]) 
  
  作为子进程执行 cmd ,返回 file 对象 (child_stdin, child_stdout, child_stderr)
  适用于: Unix, Windows.
  
 os.popen4(cmd[, mode[, bufsize]]) 
  
  作为子进程执行 cmd ,返回 file 对象  (child_stdin, child_stdout_and_stderr).
  适用于: Unix, Windows.
 
  注
  child_stdin、child_stdout 和 child_stderr 是从子进程的角度命名的,因此他们分别是子进程的标准输入、标准输出和标准错误。
  
  弃用声明  
  最后四个函数已经过时,使用 subprocess 模块。详细查阅 Replacing Older Functions with the subprocess Module 部分。

Python——os(二)文件对象