首页 > 编程语言 > 详细

python_文件操作

时间:2019-02-24 16:08:13      阅读:135      评论:0      收藏:0      [点我收藏+]
# 文件操作

‘‘‘
#  条件:
    文件名称:  档案.txt
    路径:D:\档案.txt
    编码方式:utf-8
    操作方式:读、写、追加、读写、写读..........
    以什么编码方式储存的,就要以什么编码方式操作



# 文件只读 :r
# open(‘d:\档案.txt‘,mode = ‘r‘,encoding=‘utf-8‘)   这是一个对象
f = open(‘d:\档案.txt‘,mode = ‘r‘,encoding=‘utf-8‘)    #  把这个对象赋给f
# f.read     # 这个对象的操作
h = f.read()    # 把这个对象操作赋给h
print(h)      #  打印出
f.close()

# 注:mode = ‘rb‘ 时可以不加编码方式 它是以bytes二进制的形式打开文件,处理非文字的文件


# 文件只写 w      如果有这个文件会将源文件内容清空了,在写;没有会创建一个写
f = open(‘d:\log.txt‘,mode=‘w‘,encoding=‘utf-8‘)
f.write("我是里面的内容")
f.close()

如果是wb 二进制方式写入
f = open(‘d:\log.txt‘,mode=‘wb‘)    #  可以不加编码方式
f.write("我是里面的内容".encode(‘utf-8‘))     # 写入的时候要加encode
f.close()


# 文件追加
f = open(‘d:\档案.txt‘,mode=‘a‘,encoding=‘utf-8‘)
f.write("我是里面的内容")
f.close()

# ab 二进制方式
f = open(‘d:\档案.txt‘,mode=‘ab‘)
f.write("我是里面的内容".encode(‘utf-8‘))
f.close()


# r+ 模式下 读写
f = open(‘d:\档案.txt‘,mode=‘r+‘,encoding=‘utf-8‘)
print(f.read())  # 只能读出原文章,光标定位原文章后面写入新文章
f.write(‘hello world‘)
f.close()

# r+ 读写
f = open(‘d:\档案.txt‘,mode=‘r+‘,encoding=‘utf-8‘)
f.write(‘hahahahaha‘)  # 光标会直接定位到最开始,写入的新文章会覆盖掉原文章
print(f.read())
f.close()

# r+b  # 以bytes类型 就是二进制
f = open(‘d:\档案.txt‘,mode=‘r+b‘)
print(f.read())
f.write(‘hello world‘.encode(‘utf-8‘))
f.close()

# w+ 写读
f = open(‘d:\档案.txt‘,mode=‘w+‘,encoding=‘utf-8‘)
f.write(‘hhhhhhh‘)
f.seek(0)          # 把光标调到0的位置
print(f.read())
f.close()
# w+b  不在阐述

# a+ 追加读
f = open(‘d:\档案.txt‘,mode=‘a+‘,encoding=‘utf-8‘)
f.write(‘eeeee‘)
f.seek(0)
print(f.read())    # 如果a不加+,f.read() 是无效的
f.close()


# 功能详解

f = open("d:\档案.txt",mode="r+",encoding=‘utf-8‘)
print(f.read(2))  # 可以去定位去读,单位是字符
f.seek(2)  # 是按照字节定光标位置
print(f.tell())  # 告诉你光标的位置
f.close()

# 我只想读后三位   调节光标读取
f = open(‘d:\档案.txt‘,mode=‘a+‘,encoding=‘utf-8‘)
f.write(‘lkj‘)
count = f.tell()  # 找到光标位置,肯定在最后一位
print(count)
print(type(count))
f.seek(count-7)  # 然后定位你要的光标位置
f.readable()  # 是否可读 返回flase true
f.readline()   # 一行一行读
f.readlines()   # 每一行当成列表中的一个元素,添加到list中
f.truncate()    # 对原文件进行截取
print(f.read())
f.close()

# 想看一个文件内容 for循环打印出来
f = open(‘d:\档案.txt‘,mode=‘r+‘,encoding=‘utf-8‘)   #  r+ 是比较常用 因为他也能追加
for line in f:
    print(line)
f.close()

# 有时候读的时候忘记最后关闭文档,忘写.close  下面这个自动读取关闭
with open(‘d:\档案.txt‘,mode=‘r+‘,encoding=‘utf-8‘) as f:
    print(f.read())

# 也可以多行去操作
with open(‘d:\档案.txt‘,mode=‘r+‘,encoding=‘utf-8‘) as f,        open(‘d:\log.txt‘,mode=‘w+‘,encoding=‘utf-8‘) as h:
    print(f.read())
‘‘‘

  

python_文件操作

原文:https://www.cnblogs.com/niunai/p/10391362.html

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