ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件操作

2019-05-31 21:37:48  阅读:173  来源: 互联网

标签:文件 read open gbk print 操作 txt seek


一、文件操作

#打开文件: 1.路径(绝对路径、相对路径)。
#         2.编码方式。
#         3.操作方式(只读、只写、读写等)

二、打开方式
  1. w 相关

#  w   w+   w+b     写相关
f=open('cimi.txt',mode="w",encoding='gbk')
f.write('abcdefghigklmn')
#只写方式就不能读
f.close()

f=open('cimi.txt',"w+",encoding='gbk')
#写读方式,清空原先的内容,然后写入
f.write('opq')
#此时光标会到最后的位置,所以读不出来
content1=f.read()
print(content1)
#将光标移到首位
f.seek(0)
content1=f.read()
print(content1)
f.close()
#返回opq

f=open('cimi.txt',mode="w+b")
#凡是有b的就不需要加encoding参数了,而且后面会用到encode方法
f.write('rst'.encode('utf-8'))
#同样光标移到最后,需要调整光标位置才可以读
f.seek(0)
content2=f.read()
print(content2)
f.close()
#返回b'rst'
#弊端在于会清除原先的内容

  2. r 相关

#  r   r+   r+b    读相关
f=open('cimi.txt',"r",encoding='utf=8')
#只读方式打开,光标停在首位
content3=f.read()       #读取首位之后全部内容
print(content3)
#可以调整光标位置,读取部分内容
f.seek(1)
content3=f.read()   
print(content3)
f.seek(0)
content3=f.readline()   #readline可以有参数,限制读取行数,返回的是字符串
print(content3)
f.seek(0)
content3=f.readlines()  #readlines很少有参数,返回的是一个列表,列表中元素是每一行字符组成的字符串
print(content3)
f.close()
#返回
# rst
# st
# rst
# ['rst']

  3. a 相关

#  a   a+   ab      追加写
f=open('cimi.txt',"a",encoding="gbk")
#not readable,在后面写但是不可读,并且每次运行就在后面加写
f.write('\nmicisixili')
f.write('\nkalajahaga')
f.close()

f=open('cimi.txt',"a+",encoding="gbk")
#光标开始位置是最后
f.seek(0)
content4=f.read()
print(content4)
count=f.tell()
print(count)
f.write('\n男儿有胆气,仗剑走天涯')
print(f.tell())
count=f.tell()
f.seek(count-10)
#打开方式是gbk,一个中文两个字节,如果打开方式是utf-8,就是一个中文三个字节
content4=f.read()
print(content4)
f.close()
# 打印
# rst
# micisixili
# kalajahaga
# 123
# 147
# 仗剑走天涯

f=open('cimi.txt',mode="a+b")
f.write('cccc'.encode('gbk'))
print('----')
count=f.tell()
f.seek(count-50)
content5=f.read()
print(content5)
f.seek(count-50)
listc=f.readlines()
print(listc)
f.close
# ----
# b'micisixili\r\nkalajahaga\r\n\xc4\xd0\xb6\xf9\xd3\xd0\xb5\xa8\xc6\xf8\xa3\xac\xd5\xcc\xbd\xa3\xd7\xdf\xcc\xec\xd1\xc4cccc'
# [b'micisixili\r\n', b'kalajahaga\r\n', b'\xc4\xd0\xb6\xf9\xd3\xd0\xb5\xa8\xc6\xf8\xa3\xac\xd5\xcc\xbd\xa3\xd7\xdf\xcc\xec\xd1\xc4cccc']

  4.示例

f=open('cimi.txt',"r+",encoding='gbk')
f.write('qm')
#是从光标位置开始,向后覆盖
content6=f.read()
print(content6)
f.seek(0)
for i in f:
    print(i,end='')
print('-----')
f.seek(0)
f.truncate(10)
content6=f.read()
print(content6)
f.close()
# 打印
# t
# micis
# micisixili
# kalajahaga
# 男儿有胆气,仗剑走天涯cccc
# qmt
# micis
# micisixili
# kalajahaga
# 男儿有胆气,仗剑走天涯cccc-----
# qmt
# micis

三、高级方式

with open('cimi.txt',"r+",encoding='gbk') as f:
#读写方式,必须是已经存在的文件
    f.write('cv')
    print(f.read())
#不需要关闭,自动关闭

#两个文件一起操作
with open('cimi.txt',"a+",encoding='gbk') as f1,\
    open('test.txt',"r+",encoding='gbk') as f2:
    contentc=f2.read()
    print(contentc)
    print('------')
    f1.seek(0)
    contentz=f1.read()
    print(contentz)
# 
# ll
# micis
# cill
# ------
# cvll
# micis

 

 

 

 

 

 

 

 

  

标签:文件,read,open,gbk,print,操作,txt,seek
来源: https://www.cnblogs.com/lowislucifer/p/10957610.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有