文件操作:
r,只能读。 【**】
w,只能写,写之前清空。 【**】
a,只能追加。【*】
r+ 读:默认从0的光标开始读,也可以通过 seek 调整光标的为位置。
写:从光标所在的位置开始写,也可以通过 seek 调整光标的位置。
w+ 读:默认光标永远在写入的最后或0,也可以通过 seek 调整光标的位置。
写:先清空。
a+ 读:默认光标在最后,也可以通过 seek 调整光标的位置。然后再去读取。
写:永远写到最后。
######################## 读取:r,只读不能写 + 文件不存在报错 ##########################
"""
# 打开文件
file_object = open(‘D:\python_code\day01\w.txt‘,mode=‘r‘,encoding=‘utf-8‘) # r,read; w,write; a,append;
# 读取内容
content = file_object.read()
print(content)
# 关闭文件
file_object.close()
# ######################## 写入:w,只写不能读(先清空文件) + 文件不存在则新建 ##########################
# 打开文件
file_object = open(‘D:\python_code\day01\log1.txt‘,mode=‘w‘,encoding=‘utf-8‘) # r,read(只读); w,write(只写,先清空,一般用于新建文件); a,append;
# 写内容
file_object.write(‘sundy‘)
# 关闭文件
file_object.close()
# ######################## 写入:a,只追加不能读 + 不存在则新建 ##########################
"""
"""
# 打开文件
file_object = open(‘logfffff.txt‘,mode=‘a‘,encoding=‘utf-8‘) # r,read(只读); w,write(只写,先清空,一般用于新建文件); a,append;
# 写内容
file_object.write(‘你好‘)
# 关闭文件
file_object.close()
"""
# r+可读可写
"""
读取
写入:根据光标的位置,从当前光标位置开始进行写入操作(可能会将其他的文字覆盖)
"""
"""
file_object = open(‘D:\python_code\day01\log.txt‘,mode=‘r+‘,encoding=‘utf-8‘)
file_object.seek(3) # 调整光标的位置(2为字节数),默认为0位置
file_object.write(‘sundy‘)
"""
"""
# # 读取内容
# content = file_object.read()
# print(content)
#
# file_object.write(‘666‘)
# 关闭文件
file_object.close()
"""
# 可读可写
# 写入时会将文件清空,读取时需要调整光标
""""
file_object = open(‘D:\python_code\day01\log.txt‘,mode=‘w+‘,encoding=‘utf-8‘)
data = file_object.read()
print(data)
file_object.write(‘alex‘)
file_object.seek(0)
data = file_object.read()
print(data)
file_object.close()
"""
# 可读可写
file_object = open(‘D:\python_code\day01\log.txt‘,mode=‘a+‘,encoding=‘utf-8‘) #a追加光标默认放在追加值之后,写永远追加在最后,读可以移动光标读
file_object.seek(9)
data = file_object.read()
print(data)
file_object.seek(0)
file_object.write(‘666‘)
file_object.close()
功能:
# ###################################### 读操作
# file_object = open(‘log.txt‘,mode=‘r‘,encoding=‘utf-8‘)
# 读取文件的所有内容到内存
# data = file_object.read()
# 从当前光标所在的位置向后读取文件两个字符,得到字符串
# data = file_object.read(2)
# 读取文件的所有内容到内存,并按照每一行进行分割到列表中。
# data_list = file_object.readlines()
# print(data_list)
# 如果以后读取一个特别大的文件 (**********)
# for line in file_object:
# line = line.strip()#去掉换行符
# print(line)
# file_object.close()
# ###################################### 写操作
"""
file_object = open(‘D:\python_code\day01\log.txt‘,mode=‘w‘,encoding=‘utf-8‘)
file_object.write(‘asdfadsfasdf\n‘) #\n换行符
file_object.write(‘asdfasdfasdfsadf‘)
file_object.close()
file_object = open(‘D:\python_code\day01\log.txt‘,mode=‘r‘,encoding=‘utf-8‘)
data = file_object.read()
print(data)
file_object.close()
D:\python3.6\python3.6.exe C:/Users/yangjiayu/Desktop/老男孩IT2019Python开发课程/第7天课件/s21day07/5.读写操作-功能.py
asdfadsfasdf
asdfasdfasdfsadf
练习题:
# 练习1:请将user中的元素根据 _ 链接,并写入 ‘a1.txt‘ 的文件
"""
user = [‘alex‘,‘eric‘]
data = "_".join(user)
file_object = open(‘a1.txt‘,mode=‘w‘,encoding=‘utf-8‘)
file_object.write(data)
file_object.close()
"""
# 练习2:请将user中的元素写入 ‘a1.txt‘ 的文件并以下形式
"""
user = [
{‘name‘:‘alex‘,‘pwd‘:‘123‘}, # alex|123
{‘name‘:‘eric‘,‘pwd‘:‘olbody‘}, # eric|olbody
]
file_object = open(‘a2.txt‘,mode=‘w‘,encoding=‘utf-8‘)
for item in user:
line = "%s|%s\n" %(item[‘name‘],item[‘pwd‘],)
file_object.write(line)
file_object.close()
"""
# 练习3:请将a2.txt中的文件读取出来并添加到一个列表中 [‘alex|123‘,‘eric|olbody‘]
# 方式一
file_obj = open(‘a2.txt‘,mode=‘r‘,encoding=‘utf-8‘)
content = file_obj.read()
file_obj.close()
content = content.strip() #去掉两边空白或者\n
data_list = content.split(‘\n‘)
print(data_list)
"""
result = []
file_obj = open(‘a2.txt‘,mode=‘r‘,encoding=‘utf-8‘)
for line in file_obj:
line = line.strip()
result.append(line)
file_obj.close()
print(result)
"""
python基础之文件操作
原文:https://www.cnblogs.com/sundy08/p/11884951.html