python基础入门 文件操作

打开文件

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

模式 说明
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'

读取文件

命令 说明
read(size) 从头读取,size为读取数据长度,不写默认读取全部
readlines(size) 按行从头读取,读取数据存入列表,每一行的数据为一个元素
readline(size) 一次读取一行内容

写入文件:f.write()

# 1. 打开文件
f = open('test.txt', 'w')
# 2.文件写入
f.write('hello world')
# 3. 关闭文件
f.close()

移动光标: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(目录)

案例

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/faberbeta/p/13860358.html