python基础入门之十四 —— 文件操作

一、文件的基本操作

1、打开文件

  • open(name,mode)  
  • name-文件名字符串;mode-访问模式

P.s:访问模式

r

只读。文件指针位于文件开头,默认模式

P.s:打开不存在文件报错

rb 二进制打开文件用于只读,文件指针位于文件开头
r+

读写,文件指针位于文件开头

P.s:r+打开不存在的文件报错,同r操作

rb+ 二进制打开文件用于读写,文件指针位于文件开头
w

仅写入,文件指针位于文件开头。

如文件已存在,从开头编辑,会覆盖原内容即原内容删除;如文件不存在创建新文件

wb

二进制打开文件用于写入。

规则同'w'。

w+

读写。

写规则同‘w'

P.s: w+打开文件原内容删除,未写入时直接读取为空,因为w操作会覆盖原内容

wb+

二进制打开文件用于读写

规则同'w+'

a

追加,文件指针位于文件结尾。

如文件已存在,从原内容后添加;如文件不存在创建新文件

ab 二进制打开文件用于追加,其他同'a'
a+

二进制打开文件用于读写,写规则同'a'

P.s:a+未写入时直接读取为空,因为a操作的文件在文件结尾

ab+ 二进制打开文件用于读写,写规则同'a'

2、读取文件

read(num)

从头读取,num为读取数据长度,不写默认读取全部

f = open('test.txt', 'r')
content = f.read(7)  # P.s:换行占据一个字符
print(content)
"""
aaaaa
b
"""
f.close()
readlines()

按行从头读取,读取数据存入列表,每一行的数据为一个元素

f = open('test.txt', 'r')
content = f.readlines()  
print(content)  # ['aaaaa
', 'bbbbb
', 'ccccc']
f.close()
readline()

一次读取一行内容

f = open('test.txt', 'r')

content = f.readline()
print(content)  # aaaaa

content = f.readline()
print(content)  # bbbbb

f.close()

3、写入文件:f.write()

4、移动光标:f.seek(偏移量,起始位置)

起始位置中:

  • 0:文件开头
  • 1:当前位置
  • 2:文件结尾
f = open('test.txt','r')
f.seek(2,0)
con=f.read()
print(con)
'''
aaa
bbbbb
ccccc
'''
f.seek(0)  # seek(0)为seek(0,0)简写
con=f.read()
print(con)
'''
aaaaa
bbbbb
ccccc
'''
f.close()

二、应用案例-备份文件:

# 用户输入
old_name = input('请输入需要备份的文件名:')
# 文件名截取名字和后缀,更改为新名字
index = old_name.rfind('.')
if index <= 0:
    print('文件名格式错误!')
else:
    new_name = old_name[:index]+'_副本'+old_name[index:]
    # 文件写入
    old_file = open(old_name, 'rb')
    new_file = open(new_name, 'wb')
    while True:
        content = old_file.read(1024)
        if len(content)==0:
            print('备份成功!')
            break
        new_file.write(content)
    new_file.close()
    old_file.close()

三、文件和文件夹的操作:

1、前提:导入os模块

import os

2、函数

重命名文件、文件夹 os.rename(目标文件名,新文件名)
删除文件 os.remove(目标文件名)
创建文件夹 os.mkdir(文件夹名字)
删除文件夹 os.rmdir(文件夹名字)
获取当前路径 os.getcwd()
改变默认路径 os.chdir(路径)
获取目录下文件列表 os.listdir(目录)

3、应用案例

import os
print(os.getcwd())  # 获取当前路径 C:UsersmyUserNamePycharmProjectsdemo
os.mkdir('文件夹')   # 新建文件夹
# os.remove('文件夹') # 删除的是文件夹,报错
os.chdir('文件夹')  # 切换路径
print(os.getcwd())  # 获取当前路径 C:UsersmyUserNamePycharmProjectsdemo文件夹
i = 5
while i > 0:
    open('file' + str(i) + '.txt', 'w')
    i -= 1
# 在文件夹下新建file1.txt~file5.txt 5个文件

原文地址:https://www.cnblogs.com/LynHome/p/12577773.html