Python OS模块

os模块

举例介绍os模块中 os.name、os.uname、os.listdir、os.stat、os.chmod、os.chown 六种方法的使用

 

os.name
os.uname()
sys.platform
os.listdir(path=None)
os.stat(path, *, dir_fd=None, follow_symlinks=True)
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)
os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)

 

 os.name,os.uname()

#linux
In [1]: import os
In [2]: os.name #windows是nt,linux是posix
In [3]: os.uname() #linux支持显示

  

os.listdir(path=None)

#linux
In [4]: import sys
In [5]: sys.platform #windows显示win32,linux显示linux
In [6]: os.listdir() #不给参数默认输出当前路径下所有文件
In [7]: os.listdir('/home/python') #可以指定目录

  

os 也有open、read、write等方法,但是太低级,建议使用内建函数open、read、write。

 

os.stat(path, *, dir_fd=None, follow_symlinks=True)

follow_symlinks True返回文件本身信息,Flase且如果是软链接则显示软链接本身。

#linux下先创建一个软链接文件
$ touch test
$ ln -s test t1


In [8]: os.stat('test')    #查看文件状态信息
Out[8]: os.stat_result(st_mode=33188, st_ino=1478876, st_dev=64768, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1509156704, st_mtime=1509156704, st_ctime=1509156704)

In [9]: os.stat('t1')   #不指定follow_symlinks选项(True)等同linux下stat -L功能
Out[9]: os.stat_result(st_mode=33188, st_ino=1478876, st_dev=64768, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1509156704, st_mtime=1509156704, st_ctime=1509156704)

In [13]: os.stat('t1',follow_symlinks=False) #如果follow_symlinks指定为False,并且路径的最后一个元素是符号链接,chmod将修改符号链接本身,而不是链接指向的文件。
Out[13]: os.stat_result(st_mode=41471, st_ino=1423520, st_dev=64768, st_nlink=1, st_uid=0, st_gid=0, st_size=4, st_atime=1509156724, st_mtime=1509156722, st_ctime=1509156722)

In [15]: oct(33188)   #十进制的权限33188转为八进制,权限644
Out[15]: '0o100644'

In [16]: oct(41471)   #权限777
Out[16]: '0o120777'

In [17]: !stat test
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)

In [18]: !stat t1
权限:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)

  

os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)

 

In [26]: with open('test2','w') as f: #创建一个文件
...: f.write('test2')
...:

In [29]: with open('test2','r') as f:
...: content = f.read()
...: print(content)
...: 
test2

In [30]: !stat test2
权限:(0664/-rw-rw-r--) Uid:( 1000/ python) Gid:( 1000/ python)

In [32]: os.chmod('test2',0o777)   #修改权限

In [33]: os.stat('test2')
Out[33]: os.stat_result(st_mode=33279, st_ino=1423521, st_dev=64768, st_nlink=1, st_uid=1000, st_gid=1000, st_size=5, st_atime=1509158320, st_mtime=1509158274, st_ctime=1509158374)

In [34]: !stat test2
权限:(0777/-rwxrwxrwx) Uid:( 1000/ python) Gid:( 1000/ python)

  

os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)

改变文件的属主、属组,但需要有足够的权限(root?)

In [44]: os.chown('test2',1001,1001) #权限不足,当前运行用户是python
---------------------------------------------------------------------------
PermissionError Traceback (most recent call last)
<ipython-input-44-ebd0d03ffe74> in <module>()
----> 1 os.chown('test2',1001,1001)

PermissionError: [Errno 1] Operation not permitted: 'test2'

  

End

转载于:https://www.cnblogs.com/i-honey/p/7746247.html

Pythonos模块是一个用于处理文件系统的常用模块。它提供了各种方法来处理文件和目录。在Python中,os模块是跨平台的,这意味着你不需要关心操作系统使用了什么模块os模块会自动选择并调用正确的模块。 通过使用os模块,你可以轻松地获取当前工作目录(即当前Python脚本所在的目录)的路径,使用`os.getcwd()`方法即可实现。 此外,os模块还提供了许多其他有用的方法,例如`os.listdir()`方法可以列出指定路径下的所有文件和目录。你只需要提供一个路径作为参数,比如`os.listdir("C:Users黄伟Desktoppublishos模块 est_os模块")`就可以获取该路径下的所有文件和目录列表。 总结来说,Pythonos模块是一个十分有用的模块,它提供了处理文件系统的功能,包括获取当前工作目录和列出指定路径下的文件和目录等功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python OS 模块](https://blog.youkuaiyun.com/hj1993/article/details/129431726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python模块——os模块详解](https://blog.youkuaiyun.com/qq_46416934/article/details/125241212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值