文章目录
前言
本文简单介绍了在不同操作系统下的文件权限以及Python中的csv文件、json文件处理等一系列文件操作。
第一部分:计算机文件存储
在计算机科学中,常见的数据大小单位包括位(bit)、字节(byte)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)等。
以下是这些单位之间的转换关系:
1 位(bit) = 1/8 字节(byte)
1 字节(byte) = 8 位(bit)
1 千字节(KB,Kilobyte) = 1,024 字节(2^10)
1 兆字节(MB,Megabyte) = 1,024 千字节 = 1,048,576 字节
1 吉字节(GB,Gigabyte) = 1,024 兆字节 = 1,073,741,824 字节
1 太字节(TB,Terabyte) = 1,024 吉字节 = 1,099,511,627,776 字节
第二部分:文件权限
Linux 文件权限
Linux文件权限是基于用户和组的。
每个文件或目录都有以下三个权限级别:
所有者(Owner)权限:文件所有者的权限,所有者通常是创建该文件或者目录的用户。
组(Group)权限:除了文件所有者,每个文件文件或者目录还属于一个组,文件所属组的成员的权限。
其他人(Others)权限:既不是文件所有者也不是文件所属组成员的其他用户的权限。
每个权限级别都有以下三种权限类型:
读(Read,r):允许查看文件内容或列出目录内容。(看)
写(Write,w):允许修改文件内容或修改目录结构(创建、删除文件)。(改)
执行(Execute,x):允许执行文件或访问目录(cd命令)。(执行)
可以使用ls -l命令在Linux下查看文件权限,(在终端中输入)
ls -l
显示如下:
-rwxr-xr-x 1 user group 4096 Jan 15 10:00 filename
这里的第一个字符-表示这是一个普通文件。
接下来的九个字符分为三组,每组三个字符,分别代表所有者、所有组和其他人的权限
Windows文件权限
在Windows中,权限可以分配给用户账户或组账户。
Windows文件权限比Linux复杂得多,它们基于访问控制列表(ACLs)。
以下是Windows文件权限的一些关键概念:
读取(Read):允许查看文件内容、属性、权限等。(看)
写入(Write):允许修改文件内容、属性、权限等。(改)
执行(Execute):允许运行程序或访问目录。(执行)
修改(Modify):包括读取、写入和执行权限,但不允许修改权限。
完全控制(Full Control):允许对文件或目录进行任何操作,包括修改权限。
可以使用文件资源管理器的属性对话框或使用命令行工具如icacls来查看和修改权限。
第三部分:Python文件操作
1.Python文件操作常用模式
(1)基本模式
‘r’:只读模式(默认)。如果文件不存在,则抛出FileNotFoundError。
‘w’:写入模式。如果文件存在,则将其内容清空;如果文件不存在,则创建新文件。
‘x’:独占创建模式。如果文件已存在,则抛出FileExistsError;否则创建新文件。
‘a’:追加模式。如果文件存在,写入的数据会被追加到文件末尾;如果文件不存在,则创建新文件。
‘b’:二进制模式。与上述模式结合使用,例如’rb’、'wb’等,用于读写二进制文件。
(2)读写模式
‘r+’:**读写模式。**如果文件不存在,则抛出FileNotFoundError。
‘w+’:读写模式。如果文件存在,则将其内容清空;如果文件不存在,则创建新文件。
‘a+’:读写追加模式。如果文件存在,写入的数据会被追加到文件末尾;如果文件不存在,则创建新文件。
(3)更新模式
‘r+’、'w+'和’a+'允许读写操作,但还有一个更细分的模式,用于更新文件:
‘r+’:打开文件用于读写。文件指针位于文件开头。
‘w+’:打开文件用于读写。如果文件存在,则清空文件;如果文件不存在,则创建新文件。
‘a+’:打开文件用于读写。如果文件存在,文件指针位于文件末尾;如果文件不存在,则创建新文件。
2.编码格式
(1)ASCII
描述:美国信息交换标准代码,是最早的字符编码标准之一,使用7位二进制数来表示128个字符。
适用范围:英文字符和一些特殊符号。
(2)UTF-8
描述:8位统一码转换格式,可以编码Unicode字符集中的任何字符,是一种变长编码,使用1到4个字节表示一个符号。对ASCLL字符集具有良好的兼容性
适用范围:全球多种语言,是互联网上最常用的编码格式。
(3)GB2312 / GBK / GB18030
描述:一系列简体中文编码标准,GB2312是最早的,GBK和GB18030提供了更多的汉字和符号。
适用范围:简体中文。
3.open函数
功能:返回一个文件对象,对该对象进行操作,实现文件读取
用法:
with open ('mytxt.txt','r',encoding='utf8') as file:
content = file.read()
print(content)
'''注释:
打开当前目录下的mytxt.txt文件,以'r'读模式,并指定encoding='utf8'编码格式
使用file.read()读取文件全部内容
注意:使用with打开文件,可以确保文件在读取完后自动关闭
'''
with open ('mytxt.txt','r',encodind='utf8')as file:
for line in file:
print(line.strip())
'''
注释:
for line in file:逐行读取文件内容
line.strip():去除文件每行的换行符
'''
with open ('mytxt.txt','w',encoding='utf8')as file:
file.write('I lovve it!')
'''
注释:
'w':写入模式(会覆盖原内容)
还可以使用'a'追加模式,在文件末尾追加新内容
'''
with open ('mytxt.txt',