📜  带有示例的Python中的OS模块

📅  最后修改于: 2020-04-15 08:11:09             🧑  作者: Mango

Python中的OS模块提供了与操作系统进行交互的功能。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便携式方法。* os *和* os.path *模块包括许多与文件系统交互的功能。以下是OS模块中的一些函数:

1. os.name:此函数提供导入与操作系统相关的模块的名称。当前已注册以下名称:’posix’,’nt’,’os2’,’ce’,’Java’和’riscos’

import os
print(os.name)

输出:

posix

注意:在此处运行代码时,它可能在不同的解释器上提供不同的输出,例如“ posix”。
2. os.getcwd():函数os.getcwd(),返回用于执行代码的文件的当前工作目录(CWD),这可能因系统而异。

import os
print(os.getcwd())
# 在系统上打印绝对路径os.path.abspath('.')
# 在系统上当前目录中打印文件和目录
# os.listdir('.')

输出:

C:\Users\GFG\Desktop\ModuleOS

注意:对于GFG解释器,使用的目录为\ root。每个人的输出不同,具体和个人运行的Python路径有关。

3. os.error:如果文件名和路径无效或无法访问,或者具有正确类型但操作系统不接受的其他参数,则此模块中的所有函数都会引发OSError。os.error是内置OSError异常的别名。

import os
try:
    # 如果该文件不存在,则将引发IOError
    filename = 'GFG.txt'
    f = open(filename, 'rU')
    text = f.read()
    f.close()
# 如果以上任何行抛出IOError,控件将直接跳转到此处.
except IOError:
    # print(os.error)会给出 
    print('Problem reading: ' + filename)
# 在任何情况下,代码都会在try/except之后的行继续

输出:

Problem reading: GFG.txt

文件对象操作

4. os.popen():此方法打开到命令的管道。根据模式是“ r”还是“ w”,可以读取或写入返回值。
语法: 

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

参数mode&bufsize不是必需的参数,如果未提供,则将模式默认为’r’。 

import os
fd = "GFG.txt"
#popen()与open()类似
file = open(fd, 'w')
file.write("Hello")
file.close()
file = open(fd, 'r')
text = file.read()
print(text)
# popen()提供管道/网关并直接访问文件
file = os.popen(fd, 'w')
file.write("Hello")
# 文件未关闭,在下一个功能中显示.

输出: 

Hello

注意:popen()的输出将不会显示,将直接更改文件。
5. os.close():关闭文件描述符fd。使用open()打开的文件只能由close()关闭。但是通过os.popen()打开的文件可以用close()或os.close()关闭。如果我们尝试使用os.close()关闭用open()打开的文件,Python将抛出TypeError。

import os
fd = "GFG.txt"
file = open(fd, 'r')
text = file.read()
print(text)
os.close(file)

输出:

Traceback (most recent call last):
  File "C:\Users\GFG\Desktop\芒果For芒果OSFile.py", line 6, in
    os.close(file)
TypeError: an integer is required (got type _io.TextIOWrapper)

注意:由于不存在文件或权限特权,可能不会引发相同的错误。
6. os.rename():可以使用函数os.rename()将文件old.txt重命名为new.txt。仅当文件存在且用户具有足够的特权权限来更改文件时,文件名才会更改。

import os
fd = "GFG.txt"
os.rename(fd,'New.txt')
os.rename(fd,'New.txt')

输出:

Traceback (most recent call last):
  File "C:\Users\GFG\Desktop\ModuleOS\芒果For芒果OSFile.py", line 3, in
    os.rename(fd,'New.txt')
FileNotFoundError: [WinError 2] The system cannot find the
file specified: 'GFG.txt' -> 'New.txt'

了解输出:存在文件名“ GFG.txt”,因此,首次使用os.rename()时,文件将被重命名。第二次调用函数os.rename()时,文件“ New.txt”存在而不是“ GFG.txt”,
因此Python抛出FileNotFoundError。