python操作文件与目录



title: OS文件及目录方法

tags: python os文件 os目录

grammar_cjkRuby: true

---

os.access( ) 方法

os.access(path,mode) 方法用来检测文件或目录的权限,有两个参数:

path: 文件或者目录的路径

mode: 需要检测的权限,其中 mode 的取值有:

  • os.F_OK: mode的参数,检测path是否存在。==在bash中使用[ -f path_to_file ]来检测==
  • os.R_OK: mode的参数, 检测path是否可读。==在bash中通过查看对应用户的读权限==
  • os.W_OK: mode的参数, 检测path是否可写。==在bash中通过查看对应用户的写权限==
  • os.X_OK: mode的参数, 检测path是否可执行。==在bash中通过查看对应用户的可执行权限==

    使用方法:

>>> os.access(‘/tmp/foo.txt‘,‘os.F_OK‘)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required
>>> os.access(‘/tmp/foo.txt‘,os.F_OK)
False
# mode参数传入的时候不用加引号
>>> os.access(‘/tmp‘,F_OK)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
# mode参数传入的时候,前面还有一个“os”
NameError: name ‘F_OK‘ is not defined
>>> os.access(‘/tmp‘,os.F_OK)
True
# path参数可以是一个文件,也可以是一个目录的路径

os.chdir(path)方法

os.access( ) 方法用来改变当前工作目录到指定的路径,有两个参数:

path: 要切换到的新路径

用法如下:

>>> os.chdir(‘/tmp‘)
>>> os.getcwd()
‘/private/tmp‘
>>> os.chdir(‘/Users/tuyang‘)
>>> os.getcwd()
‘/Users/tuyang‘
# os.getcwd()方法用来查看当前的工作目录
# import os,sys

os.chflags(path,flags) 方法

os.access( ) 方法用来置路径的标记为数字标记,多个标记可使用 OR 进行组合,有两个参数:

path: 要切换到的新路径

flags: 可以是以下值:

  • stat.UF_NODUMP: 非转储文件
  • stat.UF_IMMUTABLE: 文件是只读的
  • stat.UF_APPEND: 文件只能追加内容
  • stat.UF_NOUNLINK: 文件不可删除
  • stat.UF_OPAQUE: 目录不透明,需要通过联合堆栈查看
  • stat.SF_ARCHIVED: 可存档文件(超级用户可设)
  • stat.SF_IMMUTABLE: 文件是只读的(超级用户可设)
  • stat.SF_APPEND: 文件只能追加内容(超级用户可设)
  • stat.SF_NOUNLINK: 文件不可删除(超级用户可设)
  • stat.SF_SNAPSHOT: 快照文件(超级用户可设)

    用法:

tutu-de-MacBookPro:workspace tuyang$ touch stat.txt
tutu-de-MacBookPro:workspace tuyang$ ll stat.txt
-rw-r--r--  1 tuyang  staff  0  9 25 21:03 stat.txt
# 创建一个测试文件

当前的权限是:-rw-r--r--


>>> import os,sys
>>> os.chflags(‘/Users/tuyang/workspace/stat.txt‘,stat.UF_APPEND)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘stat‘ is not defined
# 没有加载stat模块
>>> import stat
>>> os.chflags(‘/Users/tuyang/workspace/stat.txt‘,stat.UF_APPEND)
# 执行成功
tutu-de-MacBookPro:workspace tuyang$ echo 111 > stat.txt
-bash: stat.txt: Operation not permitted
# 没有了清空的权限
tutu-de-MacBookPro:workspace tuyang$ echo 111 >> stat.txt
# 但是还可以追加
tutu-de-MacBookPro:workspace tuyang$ cat stat.txt
111
# 文本已经追加都文件中

现在的权限还是是: -rw-r--r-- ,因为修改的是特殊权限

==在Linux中可以使用lsattr命令来查看文件的特殊权限==

os.chown(path, uid, gid)方法

os.chown( ) 方法用来改变当前工作目录到指定的路径,有三个参数:

path: 要修改的文件的路径

uid: user ID

gid: group ID

该方法没有返回值

用法:==使用os.chown()方法修改所有者,所属组==

tutu-de-MacBookPro:workspace tuyang$ id tuyang
uid=501(tuyang) gid=20(staff) ...
# 普通用户的UID GID
tutu-de-MacBookPro:workspace tuyang$ id root
uid=0(root) gid=0(wheel) ...
tutu-de-MacBookPro:workspace tuyang$ ll stat.txt
-rw-r--r--  1 tuyang(501)  staff(20)  4  9 25 21:15 stat.txt
# root用户的UID GID
tutu-de-MacBookPro:workspace tuyang$ touch stat2.txt
# 在普通用户下创建一个测试文件
tutu-de-MacBookPro:workspace tuyang$ sudo -s
Password:
# 切换到root用户
bash-3.2# python
Python 2.7.15 (default, Aug 22 2018, 16:36:18)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
# 导入os模块
>>> os.chown(‘/Users/tuyang/workspace/stat2.txt‘,0,0)
# 使用os.chown()方法修改所有者和所属组
bash-3.2# ls -l /Users/tuyang/workspace/stat2.txt
-rw-r--r--  1 root  wheel  0  9 25 21:40 /Users/tuyang/workspace/stat2.txt
# 退回到bash查看,已经修改成功

os.chroot(path)方法

os.chown( ) 方法用来更改当前进程的根目录为指定的目录(需要root权限),有三个参数:

path: 要设置为根目录的目录

用法:

>>> os.chroot("/tmp")

os.close(fd) 方法方法

os.close( ) 方法用来关闭指定的文件描述符 fd,有一个参数:

fd: 文件描述符

用法:

>>> import os,sys
# 打开文件
>>> fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
#  写入字符串
>>> os.write(fd, "This is test")
# 关闭文件
>>> os.close(fd)
>>> print (关闭文件成功!!)
  • os.open()方法怎么用?os.write()方法怎么用?os.open()方法怎么用?

    bash-3.2# python

>>> import os,sys
>>> file = os.open(‘/Users/tuyang/workspace/openfile.txt‘)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: function takes at least 2 arguments (1 given)
# 定义一个打开的文件至少需要2个参数:文件路径和文件打开的权限
>>> file = os.open(‘/Users/tuyang/workspace/openfile.txt‘,O_RDWR|O_CREAT)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘O_RDWR‘ is not defined
# 前面需要加上“os”
>>> file = os.open(‘/Users/tuyang/workspace/openfile.txt‘,os.O_RDWR|os.O_CREAT)
>>> os.write(file,‘this is open file test!‘)
23
# os.write()方法返回写入的字节数
>>> os.close(file)
tutu-de-MacBookPro:workspace tuyang$ cat openfile.txt
this is open file test!
# 查看文件内容

原文地址:https://www.cnblogs.com/tianxie11/p/9763951.html

时间: 2024-10-04 10:42:31

python操作文件与目录的相关文章

python操作文件和目录

python操作文件和目录 目录操作 # 查看当前目录 >>> os.path.abspath('.') '/Users/markzhang/Documents/python/security' # 查看当前目录 >>> os.getcwd() '/Users/markzhang/Documents/python/security' # 更改当前的工作目录 >>> os.chdir('/Users/markzhang/') >>> o

python, 操作文件和目录

操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数 基本功能 import os #操作系统类型 os.name #posix:Linux.Unix或Mac OS X,nt:Windows系统 #要获取详细的系统信息,Windows上不提供 os.uname() #环境变量查看 os.environ #要获取某个环境变量的值,可以调用os.environ.get('key') os.environ.get('PATH') os

python 操作文件和目录 : os

导入模块: import os 显示操作系统类型: os.name posix 显示系统详细信息: os.uname() posix.uname_result(sysname='Linux', nodename='18205c3de5e0', release='3.13.0-32-generic', version='#57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014', machine='x86_64') 显示环境变量: os.environ environ

Python IO编程——操作文件和目录

1.1   操作文件和目录 >>> import os >>> os.name     #操作系统类型 'posix' >>> os.uname()     #详细的系统信息 posix.uname_result(sysname='Linux',nodename='daidai.com', release='2.6.18-194.el5', version='#1 SMP Tue Mar 1621:52:39 EDT 2010', machine='x

python学习笔记 操作文件和目录

如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数. 打开Python交互式命令行,我们来看看如何使用os模块的基本功能: >>> import os >>> os.name # 操作系统类型 'posix' 如果是posix,说明系统是L

Python学习笔记(二十五)操作文件和目录

摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431925324119bac1bc7979664b4fa9843c0e5fcdcf1e000 Python内置的os模块也可以直接调用操作系统提供的接口函数. >>> import os >>> os.name # 操作系统类型 'nt' 如果是posix,说明系统是Linux.Unix或M

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10

操作文件和目录

1. 如果要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成:比如,dir.cp等命令 如果要在Python程序中执行这些目录和文件的操作怎么办??其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数 >>>import os >>>os.name >>>'posix' 如果是posix,说明系统是Linux.Unix或Mac OS X:如果是nt,就是Window

IO编程、操作文件或目录、序列化、JSON

IO中指Input/Output,即输入和输出:涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口 1.由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,存在速度严重不匹配问题.eg:把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘接收100M数据可能需要10秒,怎么办呢,有两种办法: ①.CPU等着,也就是程序暂停执行后续代码,等100M数据在10s后写入磁盘,再接着往下执行,这种模式称为同步IO ②.CPU不等待,只是告诉磁盘,"慢慢写,不着急,