您的位置:首页 > 编程语言 > Python开发

python基础-read_readline_readlines、write、tell光标、读取字节字符、for读取

2017-10-30 09:21 696 查看
文件写入操作

with方法文件操作

文件读取
readreadline

readlines

for读取

for读取去除空行

字节读取写入

read文本字节模式读取

光标

文件写入操作

"""
open打开文件是依赖了操作系统的提供途径
win gbk
mac/linux utf-8
"""

#w是打开,之前的所有的东西都消失,w没有保存
f = open("E:\\python\\py_pro\\file","w",encoding="utf-8")
#或者添加r
f = open(r"E:\python\py_pro\file","w",encoding="utf-8")
#判断是否可写
print(f.writable())
#判断是否可读
print(f.readable())
#写入文件-str
f.write("sdf3232")
f.write("ghjtyj\n")
f.write("忘记哦si")
f.close()

#w,只写模式【不可读;不存在则创建;存在则清空内容】
f1 = open("fileTemp","w",encoding="utf-8")
f1.write("aaa")
f1.close()

#python释放了内存中一个变量,其中del f一定要发生在f.close()之后,
# 而python自动的垃圾回收机制决定了我们无需考虑del f
del f1

#r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
# f1 = open("fileT","r",encoding="utf-8")
# f1.write("aaa")
# f1.close()

#a之追加写模式【不可读;不存在则创建;存在则只追加内容】
f1 = open("fileT","a",encoding="utf-8")
f1.write("aaa")
f1.close()


输出

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
True
False


我们来看下生成的3个文件

file



fileTemp



fileT



with方法文件操作

使用with关键字来帮我们管理上下文



文件读取

我们来看下read文件内容如下:



[b]read、readline[/b]

print("-----#一次性读取------")

f = open("read",encoding="utf-8")
content = f.read()
f.close()
print(content.strip())

print("------#一行行读取-----")
f = open("read",encoding="utf-8")
str1 = f.readline()
str2 = f.readline()
str3 = f.readline()
str4 = f.readline()
str5 = f.readline()
#print()会输出文件中的换行(回车符换行)为一个空行
print(str1)
print(str2)
print(str3)
print(str4)
print(str5)
print("-----99999------")
print(str1,end="")
print(str2,end="")
print(str3,end="")
print(str4,end="")
print(str5,end="")
print("-----------")
print(str1,str2,str3,str4,str5)
print("---去掉回车换行符---")
print(str1.strip())
print(str2.strip())
print(str3.strip())
print(str4.strip())
print(str5.strip())
print("--------")


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
-----#一次性读取------
aa
www e
了忘记饿了

为we
------#一行行读取-----
aa

www e

了忘记饿了

为we
-----99999------
aa
www e
了忘记饿了

为we-----------
aa
www e
了忘记饿了

为we
---去掉回车换行符---
aa
www e
了忘记饿了

为we
--------

Process finished with exit code 0


在file文件中

aa
www e
了忘记饿了

为we


str1 = f.readline()
str2 = f.readline()
str3 = f.readline()
str4 = f.readline()
str5 = f.readline()


打印第三行‘了忘记饿了’时候,会打印3个空行,因为2行有2个回车,还有一个空行,所以打印 3个

[b]readlines[/b]

print("-----readlines------")
f = open("read",encoding="utf-8")
list = f.readlines()
print(list)

print("---read()-----")
f = open("read",encoding="utf-8")
count = f.read(5)
print(count)


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
-----readlines------
['aa\n', 'www e\n', '了忘记饿了\n', '\n', '为we']
---read()-----
aa
ww

Process finished with exit code 0


[b]for读取[/b]

print("------------for循环读取-----------------")

#循环读取
f = open("read",encoding="utf-8")
for i in f:
print(i)
print("------------for循环读取去空格-----------------")
# #循环读取
f = open("read",encoding="utf-8")
for i in f:
print(i.strip())


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
------------for循环读取-----------------
aa

www e

了忘记饿了

为we
------------for循环读取去空格-----------------
aa www e 了忘记饿了 为we

Process finished with exit code 0


[b]for读取去除空行[/b]

fHandler = open("read",encoding="utf-8")
for line in fHandler:
if line.strip():
print(line.strip())
fHandler.close()


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
aa
www e
了忘记饿了
为we

Process finished with exit code 0


[b]字节读取写入[/b]

f = open("write","rb")
str = f.read()
f.close()

print(str)

f1 = open("aaa","wb")
f1.write(str)
f1.close()


字节无需编码,如下的

f = open("write","rb",encoding="utf-8")
str = f.read()
f.close()


报错如下:

Traceback (most recent call last):
File "E:/python/py_pro/safly.py", line 15, in <module>
f = open("write","rb",encoding="utf-8")
ValueError: binary mode doesn't take an encoding argument


[b]read文本、字节模式读取[/b]

 1. 文件打开方式为文本模式时,代表读取3个字符

 2. 文件打开方式为b模式时,代表读取3个字节

read文件如下:

aa嗯
www e
了忘记饿了

为we


f = open("read",encoding="utf-8")
count = f.read(5)
print(count)
f.close()

f = open("read","rb")
count = f.read(5)
print(count)
f.close()


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
aa嗯
w
b'aa\xe5\x97\xaf'

Process finished with exit code 0


光标

read文件如下:

aa嗯
wjk e
了忘记饿了

为we


"""
aa嗯 www e 了忘记饿了 为we
"""
f = open("read",'r',encoding="utf-8")
print(f.tell())
a1 = f.read(1)
print(a1)
print("-----")
print(f.tell())
a1 = f.read(1)
print(a1)
print("---")
print(f.tell())
a1 = f.read(1)
print(a1)
print("---")
print(f.tell())
a1 = f.read(1)
print(a1)
print("---")
print(f.tell())
a1 = f.read(1)
print(a1)
print("---")

f.close()
#
# print("+++++++++++++++")
# f = open("read",'r',encoding="utf-8")
# f.seek(1)
# print(f.readline())
# f.close()
# print("-------------")
#
# f = open("read",'r',encoding="utf-8")
# print(f.readline())
# f.close()
# print("-------------")
#
# """
# f.seek(0) 开始
# f.seek(0,2) 末尾
#
# """
# f = open("read",'r',encoding="utf-8")
#
# f.seek(2)
# f.seek(0,2)
#


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/safly.py
0
a
-----
1
a
---
2
嗯
---
5

---
7
w
---

Process finished with exit code 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: