首页 > 编程语言 > 详细

python 文件操作

时间:2019-07-25 21:18:29      阅读:92      评论:0      收藏:0      [点我收藏+]

读取文件:r,只读不能写,文件不存在报错

#打开文件
 file_object=open(log.txt,mode="r", encoding=utf-8)#读取:mode为r,只读不能写,文件不存在,报错
# 读取内容,
 content=file_object.read()
 print(content)
#关闭文件
 file_object.close()

写入文件:w,只写不能读(先清空文件),文件不存在则新建

#打开文件
 file_object=open(looooog.txt‘,mode="w", encoding=utf-8)#mode为 w,write(只写,先清空,一般用于新建文件)
#写内容
file_object.write("李伟")
#关闭文件
file_object.close()

写入文件:a只追加不能读,文件不存在新建


#打开文件
file_object=open(log.txt‘,mode="a", encoding=utf-8‘)#写入:a,只在尾部追加不读,文件不存在新建
#写内容
v=file_object.write("您好啊")
#关闭文件
file_object.close( )
 
可读可写
读取,写入:r+,根据光标的位置,从当前光标位置开始进行写入操作(可能会将其他的文字覆盖)
file_object = open(log.txt,mode=r+,encoding=utf-8)
file_object.seek(2) # 调整光标的位置,2表示2字节

content = file_object.read()#读当前光标后面的内容
file_object.write()

# 读取内容content = file_object.read()print(content)file_object.write(‘666‘)#末尾添加666

#关闭文件
file_object.close()

可读可写:w+,写入时会将文件清空,读取时需要调整光标

file_object = open(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()
可读可写:a+,默认追加时光标永远在最后
file_object = open(log.txt,mode=a+,encoding=utf-8)

# file_object.seek(0)
# 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(log.txt,mode=w,encoding=utf-8)
file_object.write(asdfadsfasdf\n)
file_object.write(asdfasdfasdfsadf)
file_object.close()

练习题

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 练习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()
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)
"""

 

 

 

 

 

总结

- 打开
  - r,只能读。 【**- w,只能写,写之前清空。 【**- a,只能追加。【*- r+
    - 读:默认从0的光标开始读。也可以通过 seek 调整光标的为位置。
    - 写:若光标在0位置,则会覆盖0光标后面的字,从光标所在的位置开始写,也可以通过 seek 调整光标的位置。
  - w+
    - 读:默认光标永远在写入的最后或0,也可以通过 seek 调整光标的位置。
    - 写:先清空。
  - a+
    - 读:默认光标在最后,也可以通过 seek 调整光标的位置。然后再去读取。
    - 写:永远写到最后。
  • 操作

      • read()

      • read(2) # 字符

      • readlines()

    • write

  • 关闭

 

python 文件操作

原文:https://www.cnblogs.com/tengteng0520/p/11246935.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!