文件

一、文件操作

file = open("测试01.txt", mode="r+", encoding="utf-8")  # 打开文件
# 返回一个文件对象                  encoding 确定文件的字符编码

file.write("福州")  # 字符编码
# 将内容写入文件

# file.writelines(["可迭代\n", "对象里面\n", "所有元素\n", "必须为字符串"])
#
# context = """这里也可以
# 直接换行哟~
# """
# file.write(context)
file.flush()  # 刷新缓冲区
# 立即将内存的内容写入到硬盘
# 保存文件内容

光标的操作:

print(file.tell()) # 查看光标所在位置,以字节来计算 file.seek(-2, 0) # 移动光标 # 超过文件字节总长度就报错,不能使用负数 # file.write("广") file.close() # 关闭文件,自动保存

文件打开方式

参数值

打开方式

文件存在

文件不存在

光标位置

r(默认)

只读

正常

报错

0

w

只写

覆盖

新建

0

x

只写

报错

新建

0

a

只写

正常

新建

末尾

附加值

附加权限

+

添加读写权限

b

二进制形式打开

t(默认)

文本形式打开

 

 

 

 

 

 

 

 

 

 

 

 

 

文件读取

方法

作用

示例

返回值

read([int])

从光标所在位置开始读取,可以指定读取字符数,超过最大字符数读取所有字符

file.read(12)

str

readline([int])

从光标所在位置开始读取,可以指定读取字符数,超过当前行剩余字符数则读取当前行剩余字符

file.readlines(33)

str

readlines([int])

从光标所在位置开始读取,可以指定读取字符数,超过当前行剩余字符数则读取下一行所有字符,若依旧超过则继续读取下一行

file.readlines(33)

list

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

file = open("test02.txt", mode="r+", encoding="utf-8")

file.write("这里是字节")
file.seek(0)  # 以字节移动

# context = file.read(30)  # 读取光标后所有内容
# # 参数为 读取的字符数,超过最大字符数,读取所有的

# context = file.readline(3)  # 读取光标后,当前行的所有内容
# # 参数为 读取的字符数,超过当前最大字符数,读取当前行光标所有的

# context = file.readlines()  # 读取光标后,每一行的所有内容
# # 返回值是一个  列表
# # 每一个元素是某一行的内容

context = file.readlines(6)  # 只要读到某一行,即读取当前行所有内容

print(context)

file.close()

文件自动管理

with open("test02.txt", mode="r+", encoding="utf-8") as file:
    context = file.readlines()
    print(context)
    print(file.closed)  # 查看文件的状态

    # 会自动关闭文件


print(file.closed)

二、IO流

import io

sio = io.StringIO()
# 创建一个 StringIo对象

# IO的写入和读取  都和文件
sio.writelines("我是字符流")
# 也是有光标
print(sio.tell())  # 在 StringIO里面, 光标移动以字符来移动

context = sio.getvalue()
# 获取流中的所有内容
print(context)

sio.close()
import io

bio = io.BytesIO()
# 创建BytesIO

# bio.write(b"anbsd")

bio.write("我是byte流".encode())

print(bio.getvalue())

bio.close()

三、常用工具

import os

方法

作用

system(str)

将字符串当做系统命名执行

path.join(*args)

将多个字符串拼接成路径

mkdir(str)

创建文件夹

rename(old,new)

将 old 文件夹重命名为 new

 

 

 

 

 

 

 

 

 

 

 

import os

os.system("ls")

os.system("pwd")
#将字符串当做系统命令执行

path_str = os.path.join("/home", "likun", "python")
#将多个参数拼接成一个路径
print(path_str)

 

import shutil

方法

作用

move(src, dst)

将src路径的文件或者文件夹移动到 dst路径下

copytree(src, dst)

将src路径的文件夹复制到 dst路径下

rmtree(src)

将src路径的文件夹删除

 

 

 

 

 

 

 

 

 

 

import shutil
import os

os.mkdir("聆听")
shutil.move() #移动
shutil.copytree()#复制
shutil.rmtree()#删除

 

posted @ 2018-08-12 16:21  lk_hacker  阅读(117)  评论(0)    收藏  举报