Python-文件操作

 

基本语法

语法一

file object = open(file_name [, access_mode][, buffering])

  注意:操作完文件后,需要调用close方法关闭文件

例子

 1 # 只读
 2 f = open('file.txt', mode='r',encoding='utf-8')
 3 context = f.read()
 4 print(context)
 5 f.close()
 6 
 7 # 只写
 8 f = open('file.txt', mode='w', encoding='utf-8')
 9 context = f.write('从python写入')
10 print(context)
11 f.close()
12 
13 f = open('file.txt', mode='wb')
14 f.write('从python写入'.encode('utf-8'))
15 f.close()
16 
17 # 追加
18 f = open('file.txt', mode='a', encoding='utf-8')
19 f.write('从python追加写入\n')
20 f.close()
21 
22 f = open('file.txt', mode='ab')
23 f.write('从python以bytes写入\n'.encode('utf-8'))
24 f.close()
View Code

语法二

with open(file_name [, access_mode][, buffering]) as obj:
    pass

例子

with open('file.txt', mode='r+', encoding='utf-8') as obj:
    print(obj.read())

  注意:此种方式不用调用close方法关闭文件

 

打开方式

r只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+    打开一个文件用于读写。文件指针将会放在文件的开头。
rb+    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w    打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb    以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+    以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

  注意:加‘b’代表以bytes类型打开

 

File的属性与方法

光标定位

seek()方法

按照字节定位光标

注意:seek(3)里面必须传一个参数

# 把光标定到第三个字节后,开始读完整个文件
fo = open('file.txt', 'r', encoding='utf-8')
ret = fo.seek(3)
print(ret)  # seek = 3
print(fo.read())

tell()方法

告诉你光标的位置

fo = open('file.txt', 'r', encoding='utf-8')
ret1 = fo.tell()    # 默认是0的起始位置
print(ret1)
print(fo.read())

文件的读写操作

write()方法

将任何一个字符写入文件

fo = open('file.txt', 'w', encoding='utf-8')
fo.write('用write方法写入文件')
fo.close()

read()方法

从文件中一次性读取内容

fo = open('file.txt', 'r', encoding='utf-8')
ret = fo.read()
print(ret)
fo.close()

readline()方法

一行一行的读

fo = open('file.txt', 'r', encoding='utf-8')
ret = fo.readline()
ret1 = fo.readline()
print(ret.strip())
print(ret1.strip())
fo.close()

readlines()方法

每一行当成列表的一个元素,添加到list中,可以通过for循环一行一行的读

fo = open('file.txt', 'r', encoding='utf-8')
ret = fo.readlines()
for line in ret:
    print(line.strip())

 

posted @ 2018-08-09 15:27  孙昌恒  阅读(158)  评论(0编辑  收藏  举报