python基础4

一。普通文件相关操作方法

1. 打开文件

语法: open("路径"[,模式])

模式:

 

模式说明
r 读取模式(默认)
w 写入模式,如果文件不存在则创建,如果文件存在则进行截断,从文件开头位置进行写入
x 独占写入模式 如果文件存在则报FileExistError异常,从文件开头位置写入
a 附加模式
b 二进制模式 (与其他模式结合使用)例: rb wb
t 文本模式 (默认,与其他模式结合使用)例:r== rt w== wt
+ 读写模式(与其他模式结合使用)例:r+ rb+ w+ wb+ x+

 

注意:

  • open打开的文件必须close关闭

  • r+和w+:

    • 区别:r+保留 w+截断

    • 相同:从文件头部位置写入

2. 常见文件操作方法

 

 

方法描述
close() 关闭文件,在open()打开后使用此方法关闭,如不关占用系统的可打开文件的句柄数
name 获取文件名
read() 读取文件内容 字符
write() 写入文件内容 无换行
seek() 把文件指针移动到参数表示的位置,0表示文件的开始位置
tell() 获得文件指针位置,标记当前位置
readline() 读取一行信息,如果给出参数,则庄子一行的一部分注意:参数表示要取得的字符的数量
readlines() 读取所有数据,返回一个列表,文件中每行都是列表中的一个元素如果给出参数:则参数表示读取的内容的总长,但是参数<一行的长度则读取整行
writelines() 把一个列表中的字符串写入文件,注意writelines不带换行

 

f=open('abc.txt','r',encoding='utf-8')
# while True:
# pass
# data=f.read()
# print(data)
# print(f.tell())
# f.seek(0)
# data1=f.read(13)#有\n
# print(data1)
# f.close()

line=f.readline()
while line: #none
print(line)
line=f.readline()

f.readlines()
f.close()
# f=open("abc.txt",'a',encoding="utf-8")
# # f.write("hello\n")
# data=['a','b','c']
# f.writelines(data)
# f.close()


with open('abc.txt','r+',encoding='utf-8') as f:
data=['hello\n','nihao\n']
f.writelines(data)
line=f.readline()
while line:
print(line,end='\t')
line=f.readline()
   

 

3. 字符编码

  1. ASCII 是一种单字节的编码

  2. MBCS (Multi-Byte Character Set) 是统称,双字节,GBK

  3. Unicode 4个字节表示一个字符 UTF-8

 

4. with xxx as xxx语句

特点:自动关闭

语法: with open() as 变量名:

操作代码

 

二. 练习

 

练习1: read和write的练习要求实现如下功能:从键盘输入字符,逐个把它们写入到demo01.txt文件中,直到输入一个#为止。

f=open("demo01.txt",'a',encoding="utf-8")
while(True):
num = input("输入字符:\n")
if num == '#':
print("停止")
break
else:
f.write(num)

f.close()

 

练习2:要求:实现一个文件复制器,将用户指定文件,复制到指定的位置,并保存成指定的名称

def copy():
file=input("输入文件")
location=input("请输入保存路径")
with open(file,"rb") as f:
fb=f.read()
with open(location+file,"wb") as f:
fb1=f.write(fb)
copy()

练习3:有两个文件,每个文件中都有一行字符,要求把这两个文件的信息合并,并且按照字母的顺序排序,输出到一个新的文件中。

with open("one.txt",'r+') as f1:
t1=f1.read()
with open("two.txt",'r+')as f2:
t2=f2.read()
with open("three.txt",'w+') as f3:
f3.write(t1)
f3.write(t2)
f3.seek(0)
t3 = sorted(f3.read())
print(t3)
with open("four.txt",'w+')as f4:
for i in t3:
f4.write(i)

练习4:读取文本文件data.txt中所有整数,将其排序后写入文本文件data_asc.txt中

with open("data.txt",'r+') as f1:
t1=f1.read()
with open("data1.txt",'w+') as f2:
f2.write(t1)
f2.seek(0)
t3 = sorted(f2.read())
with open("data_asc.txt", 'w+')as f3:
for i in t3:
f3.write(i)

 

posted @ 2021-03-20 12:20  YangYuJia  阅读(6)  评论(0)    收藏  举报