python文件操作

一. 打开文件

1. 打开文件

在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:

open(name, mode)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。实际上为文件路径,默认为当前路径下

mode:设置打开文件的模式(访问模式):只读、写入、追加等。

文件打开模式:

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

2. 获取文件对象

 open函数的返回值即为文件对象,通过文件对象可以对文件进行读写

f = open('test.txt', 'w')
print(type(f))  # <class '_io.TextIOWrapper'>
print(f)  # <_io.TextIOWrapper name='test.txt' mode='w' encoding='cp936'>

二. 写文件

1. 语法:

文件对象.write('内容')

2. 示例:

f = open('test.txt', 'w')
f.write("abc")  # 向文件中写入了‘abc’
f.close()

注意:

1. 打开模式为w时,如果文件不存在则创建文件,存在会清空文件

三. 读文件

1. 语法:

文件对象.read(num)        # 读取指定字节数的内容,num不传则读所有
文件对象.readline()        # 读取一行
文件对象.readlines()    # 按照行的方式读取内容到一个列表,其中每一行的数据为一个元素。

说明:

1. 参数num表示要从文件中读取的数据的长度(单位是字节),如果read()没有传入num,那么就表示读取文件中所有的数据。

2. 示例:

test.txt文件内容:

aaaa
bbb
cccc

read(num)

f = open('test.txt')
content = f.read(3)     
print(content)  # aaa

 readline()

f = open('test.txt')
content = f.readline()
print(content)  # aaaa\n

readlines()

f = open('test.txt')
content = f.readlines()
print(content)  # ['aaaa\n', 'bbb\n', 'cccc']

注意:

对文件进行操作时,存在指针,r、w模式打开时,指针默认在开头。a模式打开时指针默认在结尾,读取文件时,指针会相应的移动,读取多少字节,移动多少字节的位置

 四. 移动指针

文件对象的指针可以通过seek()方法移动

语法:

文件对象.seek(偏移量, 起始位置)

起始位置可选值:

0:文件开头
1:当前位置
2:文件结尾

 五. 文件关闭

 语法:

文件对象.close()

六. 操作文件和文件夹模块:os

 1. 导入模块

import os

2. 模块的方法

2.1 重命名文件:

import os

# os.rename(目标文件名, 新文件名)
os.rename('test.txt', 'aa.txt')
os.rename('d:\\test.txt', 'd:\\aa.txt')

说明:

1. 两个参数实际上都为文件路径,默认为当前文件夹

2. 可实现文件的移动

2.2 删除文件:

import os
# os.remove(目标文件)
os.remove('a.txt')  # FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'a.txt'
os.remove('d:\\b\\bb.txt')

说明:移除不存在的文件时会报错

 2.3 创建文件夹:

import os
# os.mkdir(文件夹)
os.mkdir('abc')
os.mkdir('abc/c')

说明:只能创建一层文件夹,不能同时创建多级文件夹

2.4 删除文件夹

import os
# os.rmdir(文件夹)
os.rmdir("abc/b")   # FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'abc/b'
os.rmdir("abc/c")

说明:删除最后一级的文件夹,不存在则报错

 2.5 获取当前目录

import os

print(os.getcwd())  # C:\Users\11265\Desktop\code\venv

2.6 改变默认目录

import os

os.chdir("d:")
os.rmdir("b")

说明:默认情况下,默认目录为当前目录

2.7 获取目录列表

import os
# os.listdir(目录)
os.mkdir('abc/bb')
os.mkdir('abc/cc')
os.mkdir('abc/dd')
print(os.listdir('abc'))    # ['bb', 'cc', 'dd']

说明:会获取指定路径下的文件和文件夹列表

 

posted @ 2020-12-24 23:12  foreast  阅读(96)  评论(0编辑  收藏  举报