io操作-文件

io文件
str 字符串
bytes 字节串
bytes=str.encode()
str=bytes.decode()

1.生成文件对象
权限:r读 w写 a追加写 r+读写 w+写读 a+写读 (字符串格式)
加b 字节串格式 比如:‘rb+‘

file_object=open(file,‘w‘)

2.读写操作
读模式文件对象只能调用read(),写模式文件对象只能调用write(‘ok‘),读写模式才可以都调用
读写模式差别在于,文件是否存在,读模式打开文件必须存在,不然报错
写模式打开,文件存在,打开原文件;不存在,新建file文件
w 和 a模式差别在于,w模式,文件原有内容删除,从开头写;a模式,在文件最后追加
file_object.read()
read()全部读取 read(1024)读1024个字节
readline()读一行 readline(1024) 读1024字节,一行不够1024读一行;1025个字节,先读1024,下次调用再读1个
for line in file_object:
print(line) #每次读一行

file_object.write(‘ok‘+‘\n‘) #多次调用执行的时候,要加\n手动换行

刷新缓冲区条件:

1. 系统默认缓冲区被写满
2. 程序执行结束或者文件对象被关闭
3.程序中调用flush()函数
file_object.flush()
4. 行缓冲遇到换行
系统默认file_object = open(file_name, access_mode=‘r‘, buffering=-1) buffering=1行缓冲

3.关闭文件对象
file_object.close()

文件偏移量:
查看
file_object.tell()
设置
file_object.seek()

file_object.seek(0,0)开头位置 file_object.seek(0,1)当前 file_object.seek(0,2)结尾 前面的0表示从这个位置不移动

字符串打开,只能开头位置往后移
file_object.seek(2,0)开头位置往后移动2个位置

字节串打开,可以前后移动
file_object.seek(-10,2)结尾往前移动10个位置
file_object.seek(10,2)结尾往后移动10个位置

r /w 打开文件偏移量为0 a打开打开文件偏移量为结尾

文件描述符:系统对每个io操作生成一个不重复编号
file_object.fileno()
通过IO对象获取对应的文件描述符
后面Io多路复用 poll/epoll会用到

常用几个文件函数:
import os
os.path.getsize(‘file‘)查看文件大小
os.path.exists(‘file‘)查看文件是否存在
os.path.isfile(‘file‘)查看是否是file文件类型
os.path.abspath(‘file‘)查看文件绝对路径 os.path.abspath(__file__)查看本模块路径
os.path.isdir(‘file‘)查看是否是文件夹类型
os.listdir() 查看目录下的文件列表 返回list
os.remove(file) 删除

原文地址:https://www.cnblogs.com/chenlulu1122/p/11888615.html

时间: 2024-11-18 23:53:00

io操作-文件的相关文章

16 IO操作文件读写

IO的分类 第一种分法: 1.输入流 2.输出流 第二种分法: 1.字节流 2.字符流 第三种分法: 1.节点流 2.处理流 I/O当中的核心类: InputStream  <--------FileInputStream OutputStream <-------FileOutputStream 核心类的方法: InputStream: int read(byte[] b,int off,int len) OutputStream: void write(byte[] b,int off,i

IO操作文件的复制与删除

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException; import org.junit.Test; public class Delete { /* 把d:/mywork复制成c:/mywork 写程序删除目录c:/mywork, delete()? 递归 */ public void deleteDir(File dir){ /

Java IO 操作文件

1. 写文件 如果是文本 推荐使用 BufferedWriter bw = new BufferedWriter(new FileWriter("G:/新建文件夹/add2.txt", true));// 文件追加 long begin4 = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { bw.write("测试java 文件操作\r\n"); } bw.flush(); bw.c

java基础之IO操作

IO操作 ·文件类的使用(File) ·IO中流的基本使用(字符流.字节流.内存流.打印流) ·System类对IO的支持 ·对象序列化的问题 在整个的IO操作中,流的操作分为两种: ·字节流 字节输出流:OutputStream 字节输入流:InputStream ·字符流 字符输出流:Writer 字符输入流:Reader IO操作的基本步骤: 在Java的使用io的话,必须要按照以下的几个步骤进行(对文件操作来说): ·使用File找到一个文件 ·使用字节流或者字符流的子类为OutputS

第十四周总结 Io之文件流

I/O相关 输入/输出 流(数据流动) 数据流动的方向 读数据(输入input) 写数据(输出output) 文件流 字符流 数据流 对象流 网络流.... 1.什么叫文件 一种电脑的存储方式 文件有不同的格式 .txt .doc .ppt .mp4 .jpg .rar ... 文件夹?---目录路径 File是一个类 File----->与电脑上的文件或文件夹产生一 一对应的的映射关系 1.java.io包中 2.文件或目录路径名的抽象表示形式 3.File与真实硬盘中的文件和文件夹 不是一个

【UNIX环境高级编程】文件 IO 操作 - 基础函数 open close creat lseek write read 详解

博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271 一. 文件打开关闭操作相关函数介绍 1. open 函数 (1) open 函数简介 open 函数解析 : -- 函数定义 : #include <fcntl.h> int open(const char *path, int oflag, ...); -- 函数作用 : 打开或者创建一个文件; -- 返回值 : 打开文件成功, 返回文件描述符; 如果失败, 返回

imx6用文件io操作gpio

具体请参考: http://blog.csdn.net/u014213012/article/details/53140781 这里要注意的是: 要让linux支持文件io方式操作gpio,首先驱动必须得支持,也就是说设备树上必须先配置好gpio模式,然后参照以上链接去实现gpio操作 这里举例来说:hud项目中(imx6dl平台),有一个蓝牙电源的使能受GPIO1_IO30的控制,所以我们必须得在设备树上配置这个pad为GPIO模式 1.配置gpio模式 现在需要在设备树上配置GPIO1_IO

C# IO操作(四)大文件拷贝(文件流的使用)、文件编码

     大文件拷贝(文件流的使用).文件编码 首先说一下大文件拷贝和文件流,因为计算机的内存资源是有限的,面对几个G甚至更大的文件,需要通过程序来完成拷贝,就需要用到文件流(因为我们无法做到把文件一次性加载到内存中:事实上,内存也不允许这么干),所以在C#中出现了内存流这个东西.先看下面的内容,File类中的常用读取文件方法会将文件内容一次性全部加载到内存中: 1 string sPath = @"C:\Users\Chens-PC\Desktop\Nginx.txt"; 2 //F

C# IO操作(五)文件的递归加载

本篇是一个案例,其核心通过代码展示代码中的递归这个用法,程序的界面如下: 当点击“加载”按钮时,根据路径中的地址,加载该文件夹下所有的子文件夹和子文件,代码如下: 1 private void BtnLoad_Click(object sender, EventArgs e) 2 { 3 string sPath = txtPath.Text.Trim(); 4 LoadDirAndFile(sPath, tvList.Nodes); 5 } 6 7 private void LoadDirAn