文件I/O(读/写)
打开文件使用open方法: f = open(file,mode)
filename:
原字符串 r'c:\temp\text.txt'
转义字符串 'c:\\temp\\text.txt'
mode:
r 只读方式
w 打开文件只写入,覆盖写入
a 打开一个文件用于追加
+ r+,w+都是读写模式,区别于r+,必须是已存在文件,w+可以创建文件
b 二进制
打开文件:建立程序与文件的联系
读方式:
read(size):从文件读取指定的字节数,如果未给定或为负则读取所有
readline(size):用于从文件读取整行,包括“\n"字符,指定非负整数,则返回相应的字节数
readlines(size):读取所有行并返回列表,如size大于零,则一次性返回相应字节数
写方式
write(str):将字符串写入文件,返回的是写入的字符长度
writelines():向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符
关闭文件
flie_obj.close()
由于读写可能出现IOError,一旦出错,后面的f.close()就不会调用,所以,为了保证无论是否出错,都能正确的关闭文件,我们可以使用try: finally来实现
try:
f = open(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\2.txt","r",encoding="utf-8")
print(f.read())
finally:
if f:
f.close()
但是每次写太复杂,所以python引入了with语句来调用close()方法
with open(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\2.txt","r",encoding="utf-8") as f:
print(f.read())
------------------------------------------------------------------
csv文件读操作
1.创建csv文件
2.导入csv模块
3.使用with打开文件
4.使用csv读取文件
# 读# 打开文件# 打开文字指定字符集,python 默认中文字符是gbk# 默认mode 读模式
f =open(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\asd.txt",encoding="utf-8")# 对文件读#print(f.read()) #abcdefgh#print(f.readline()) # abcdefgh#print(f.readlines()) # ['abcdefgh\n']for i in f.readlines():print(i)# 关闭
f.close()
# 写模式# 打开文件,如果不存在就创建这个文件,然后写入文件
f =open(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\2.txt","w",encoding="utf-8")# f.write("好搞笑")# writelines():向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符,覆盖写入# aa = ["津贴\n","haha"]# f.writelines(aa)# 关闭
f.close()
# 读写模式
f =open(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\2.txt","r",encoding="utf-8")
f1 =open(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\1.txt","w",encoding="utf-8")# f1.write("好搞笑")
f1.writelines(f.readlines())# writelines():向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符,覆盖写入# aa = ["津贴\n","haha"]# f.writelines(aa)# 关闭
f1.close()
f.close()
# csv文件的读import csv
withopen(r"C:\Users\92588\Desktop\study-测试\笔记\第三章 Python学习\22.csv",encoding="utf-8")as f:
data = csv.reader(f)# print(data)for i in data :print(i[0])