首页 > 技术文章 > python:文件操作

cansun 2017-12-17 23:42 原文

#!usr/bin/env python
# -*- coding:utf-8 -*-

__author__ = "Samson"

#默认以只读方式打开
f1 = open("yesterday", encoding="utf-8")
for i in range(3):
print(f1.readline().strip())#只能读取一行
f1.close()


f1 = open("yesterday", encoding="utf-8")
for line in f1.readlines():#readlines函数读取文件中的所有数据加载到内存中并返回一个列表,该方法只适合读取小文件
print(line.strip())
f1.close()

f1 = open("yesterday", encoding="utf-8")
for line in f1:#这种写法好点,一行一行读取,只会加载一行到内存中,不会像readlines那样加载文件所有内容到内存中
print("----",line.strip())
f1.close()

#只写方式打开文件
f2 = open("yesterday", "w", encoding="utf-8")#文件句柄
f2.write("I am a handsome boy!")
f2.truncate(10)#截断10个字符(无论文件定位在哪儿,都是从头开始截断)
f2.close()

#追加模式,只能写
f3 = open("yesterday", "a", encoding="utf-8")
f3.write("\nwow\n")
f3.flush()#强制刷新,一般与write()一起使用
f3.write("You are a lucky boy!")
f3.close()

#文件定位
f4 = open("yesterday", encoding="utf-8")
print(f4.tell())#tell()函数指的是当前文件中光标所在的位置(即文件读到哪儿了)
print(f4.readline())
print(f4.tell())
f4.seek(0)#光标定位到起始处
print(f4.readline())
print(f4.encoding)#返回文件的编码方式
print(f4.fileno())#返回文件句柄在内存中的编号
f4.close()

#以读,写方式打开文件(只能在文件末尾写),写程序一般用该方式
file = open("yesterday", "r+", encoding="utf-8")
#以写,读方式打开文件(只能在文件末尾写,无论定位到哪儿都是在文件末尾写)
file1 = open("yesterday", "w+", encoding="utf-8")
#以追加,读方式打开文件(只能在文件末尾写,无论定位到哪儿都是在文件末尾写)
file2 = open("yesterday", "a+", encoding="utf-8")
#以读方式打开二进制文件
file3 = open("yesterday2", "rb")
file3.write("Hello everyone!".encode())

with open("yesterday", "a+", encoding="utf-8") as f1,\
open("yesterday2", "a+", encoding="utf-8") as f2:

推荐阅读