Python对文件的操作

一、文件的编码

1.文件的编码方式

计算机本质上只能处理0和1组成的二进制数字,很早的时候,为了让计算机能识别字母,美国设计了ASCII,将美国常用的128个符号转化为二进制。但世界上有汉字、日文、韩文等几百种语言,为了满足需求,业界协会同意创建了Unicode(统一码),为不同语言中的每一个字符设定了统一且唯一的二进制编码,满足了跨语言、跨平台进行文本转换和处理的需求。

2.编码与Unicode值的转换
chr()函数:

功能:返回数字i,对应的的Unicode字符

i 可以是任意进制数值,在转换时都会自动转换为二进制数值。

使用形式:

chr(i)

 示例代码
#35的十进制、十六进制、二进制
print(chr(35),chr(0x23),chr(0b00100011))

 

ord()函数:

功能:返回参数c的Unicode数值

参数c:数据类型为字符串类型且表示单个字符。

使用形式:

ord(c)

示例代码 

总结: 

二、操作文件

1.打开文件 

open()函数:

功能:打开一个文件

file:需要打开文件的文件地址(包含路径和文件名)

参数mode:指文件打开都模式(几种打开模式如下表格)

使用形式如下:

模式表格 

模式字符描述文件存在文件不存在
'r'只读(默认)打开文件抛出错误
'w'只写清空文件创建新文件
'x'独占创建抛出错误创建新文件
'a'追加从末尾开始写创建新文件
'b'二进制模式与其他模式结合使用-
't'文本模式(默认)与其他模式结合使用-
'+'读写与其他模式结合使用-

实例代码:

f = open(r'D:\pythonProject11\长歌行.txt','r')  #在路径前加一个‘r'避免转义报错
print(f)

2.打开模式

 open函数的mode参数具有多个模式,接下来介绍几种常见模式的使用效果。

  • ‘w’覆盖写模式

   如果文件夹内没有参数file路径中指定的文件,则会创建名为file的文件,如果文件夹中词文件已存在,则删除此文件的内容,重新写入内容。

示例代码:

for i in range(1,101):
    path='D:\\pythonProject11\\csdn\\数据2\\数据'+str(i)+'.txt'
    f = open(path,'w')
    f.close()

 

  • ‘x’创建写功能 

’x'为创建写模式,在使用‘x'模式时,会创建一个新文件,并给定新文件写入权限。如果计算机中已经存在与参数file同名的文件,则会出现异常错误,因此需要确保创建文件在计算机中不存在。

 示例代码:
 

for i in range(1,101):
    path='D:\\pythonProject11\\csdn\\数据2\\数据'+str(i)+'.txt'
    f = open(path,'x')
    f.close()

 

for i in range(1,101):
    path='D:\\pythonProject11\\csdn\\数据2\\a数据'+str(i)+'.txt'
    f = open(path,'x')
    f.close()

  •  ‘a’追加写模式

 使用此模式时,保留原有的文件内容,并在文件的末尾继续追加写入新内容。如果文件不存在,则会创建一个新文件,新文件具备写入权限。

示例代码:

f = open(r'D:\pythonProject11\长歌行.txt','a',encoding='utf-8') #引用‘a’模式
f.write('aaaa')
f.close()

 

 

  • ‘+’增加模式

‘+’模式为增加模式,此模式需要与‘r'、’w'、‘x’、‘a’模式中的一种结合使用,表示在原有模式基础上增加读写权限。

 示例代码:

  •  open()复写模式

open()函数还有一种复合写法,可以避免用户因忘记使用close()方法关闭文件(f.close())而导致的程序异常 .

使用形式如下:

with open(参数)  as 变量名:   #最后有一个‘:’别忘了

 示例代码:

 三、读取文件

  •  read()方法

read()方法使用形式如下:

读取文件内容前需要确定文件的打开模式是否为只读模式,如果是,则可以使用read()、readline()、readlines()方法读取文件内信息。

文件对象.read(site=-1)   #site 从文件中读取site个字符的内容,默认为读取全部内容 

 示例代码

 示例代码:(读取文件的前10个字)

如果encoding没有指定,系统会默认编码为GBK编码方式。由于文件存在中文,GBK编码方式无法解析中文字符,所以read()读取时报错。

 

  • readline()方法 

 readline()方法使用形式如下:

功能:从文件中读取一行内容

参数site:默认从文件中读取一行内容,如果site为其他数值,则读取该行前site个字符

readlines(site = -1)

 示例代码:

site填入其他数值

  

  • readlines()方法: 

功能:从文件中读取所有文件的内容,以列表形式返回,每行内容为列表中的一个元素 

参数hint:获取所在行内容的hint个字符。例如第1行有5个字符,换interesting,就只读取第1行内容

 使用形式如下:

readlines(hint=-1)

 

 示例代码:

 四、写入文件  

  •  write()方法

功能:把字符串text写入文件。

参数text:表示写入信息,其数据类型为字符串类型

返回值:返回写入的字符串 

write()方法使用如下:

write(text) 

示例代码: 

因为使用了‘w’模式所有会将原有‘长歌行.txt’内容全部清除

 

  •  writelines()方法

功能:把字符串列表(列表中的元素均为字符串)写入文件,且不添加换行符。

参数lines:字符串列表

返回值:返回None,表示空 

writelines()方法使用形式如下:

 writelines(lines)

示例代码 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值