首页 > 其他分享 >os File的操作

os File的操作

时间:2022-09-30 09:00:08浏览次数:60  
标签:文件 写入 内容 File FileMode 操作 权限 os

几个操作:

os.NewFile(fd, "aName")  包装一个文件描述符,比如:uintptr(syscall.Stderr)

os.Create("fileName")   创建文件,如果文件已存在,会被清空内容

os.Open("fileName")  打开现有的文件,只读

os.OpenFile("fileName", OPERATION_MODE, FileMode)   创建或者打开文件

其中 os.Open 和 os.Create 都是 os.OpenFile 的封装,从源码可以看出他们的为啥具有对应的行为约束:

 

操作模式:

  • os.O_RDONLY  只读不可写
  • os.O_WRONLY  只写不可读,如果编辑为只写,对其调用Read()编译的时候不会报错,但是读不到内容。此时写会从0位置写入内容,如果原来有内容,会被覆盖。
  • os.O_RDWR  可读可写。此时写入时,如果已经读取过内容,则会在最后读取/写入的位置后面写入(此处有个偏移量在控制,实际使用中可以使用os.Seek()来调整)。
  • os.O_APPEND:当向文件中写入内容时,把新内容追加到现有内容的后边。
  • os.O_CREATE:当给定路径上的文件不存在时,创建一个新文件。
  • os.O_EXCL:需要与os.O_CREATE一同使用,表示在给定的路径上不能有已存在的文件。
  • os.O_SYNC:在打开的文件之上实施同步I/O。它会保证读写的内容总会与硬盘上的数据保持同步。
  • os.O_TRUNC:如果文件已存在,并且是常规的文件,那么就先清空其中已经存在的任何内容。

文件权限:

FileMode其实是uint32类型,其中低9位为文件权限。

比如0777是 rwxrwxrwx,0321是-wx-w---x。使用FileMode也实现了String()接口,可以打印出权限内容。

注意,为了确保权限设置正确,在使用中最好先使用syscall.Umask(0)清空mask内容。mask是权限的掩码限制,一般认为是为了限定用户设定文件的权限下限,比如mask为0022,那么FileMode为0666的时候,实际创建的文件是0666-0022=0644。

 

标签:文件,写入,内容,File,FileMode,操作,权限,os
From: https://www.cnblogs.com/zxq89/p/16743724.html

相关文章

  • 常用快捷键和dos命令
    电脑常用快捷键tab:切换菜单ctrl+c:复制ctrl+v:粘贴ctrl+x:剪切ctrl+z:撤回ctrl+s:保存alt+f4:关闭窗口shift+delete:永久删除 win+tab:切换窗口dos命令win+r输入cmd:命......
  • centos7 下安装wine 7.0 打开windows应用出现乱码问题
    官网下载地址 https://www.winehq.org/tar-xf./configuremakewhichwine安装好wine7.0稳定版之后,wine+应用名称启动.exe文件需要用root权限启动 如果启动不......
  • 企业微信机器人的自动化操作
    #-*-coding:utf-8-*-importrequestsurl='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3be1e100-2860-4bc6-9169-xxxxxxxxxxxx'#python调用机器......
  • 列表内置方法及操作
    列表内置方法及操作一、类型转换list(其他数据类型)把其他数据类型转成列表print(type(list('123')),list('123'))#<class'list'>['1','2','3']print(type(l......
  • 秋色园QBlog技术原理解析:页面Post提交机制(十一)
    文章回顾:1:​​秋色园QBlog技术原理解析:开篇:整体认识(一)​​--介绍整体文件夹和文件的作用2:​​秋色园QBlog技术原理解析:认识整站处理流程(二)​​--介绍秋色园业务处理......
  • Nacos配置中心用法详细介绍
            上篇文章介绍了Nacos作为注册中心的用法,除此之外,Nacos还能作为配置中心使用,那这篇文章就介绍下Nacos作为配置中心的基本用法,首先我们先了解下为什么......
  • MongoDB(1):数据库和集合基本操作
    MongoDB是一款非关系型数据库。传统的关系型数据库受到各种关系的累赘,各种数据形式的束缚难以处理海量数据以及超高并发的业务场景。而MongoDB又是一个非关系数据库中功能......
  • 列表内置方法及操作
    今日内容数据类型的内置方法理论我们之前所学习的每一种数据类型本身都含有一些列的操作方法内置方法是其中最多的(自带功能)在python中数据类型调用内置方法的同意句......
  • FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection
    FCOS3D是在2D检测器FCOS的基础上提出的,是一种单目3D检测算法,根据RGB图像进行3D目标检测.FCOS预测的是一个前景点到边界框的4个距离,而FCOS3D需要预测更多的东西,包括3D中......
  • Python操作数据库
    python使用MySQL主要有两个模块,pymysql(MySQLdb)和SQLAchemy。pymysql(MySQLdb)为原生模块,直接执行sql语句,其中pymysql模块支持python2和python3,MySQLdb只支持python2,两者......