【IO】01、文件对象

一、打开和关闭文件

1、文件打开和关闭

In [1]: help(open)

Help on built-in function open in module io:

open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    Open file and return a stream.  Raise IOError upon failure.
    
    ========= ===============================================================
    Character Meaning
    --------- ---------------------------------------------------------------
    ‘r‘       open for reading (default)
    ‘w‘       open for writing, truncating the file first
    ‘x‘       create a new file and open it for writing
    ‘a‘       open for writing, appending to the end of the file if it exists
    ‘b‘       binary mode
    ‘t‘       text mode (default)
    ‘+‘       open a disk file for updating (reading and writing)
    ‘U‘       universal newline mode (deprecated)
    ========= ===============================================================     
    
In [6]: f = open("/tmp/shell/test.txt")  # 打开一个文件,获得一个文件对象

In [7]: type(f)
Out[7]: _io.TextIOWrapper

In [8]: f
Out[8]: <_io.TextIOWrapper name=‘/tmp/shell/test.txt‘ mode=‘r‘ encoding=‘UTF-8‘>

In [9]: f.mode  # 文件对象的打开模式
Out[9]: ‘r‘

In [11]: f.name  # 文件名 
Out[11]: ‘/tmp/shell/test.txt‘

In [13]: f.read()  # 读取文件的内容
Out[13]: ‘Hello World!\nI love python\n‘

In [15]: f.readable()  # 是否可读
Out[15]: True

In [16]: f.writable()  # 是否可写
Out[16]: False

In [17]: f.closed  # 文件对象是否关闭
Out[17]: False

In [20]: f.close()  # 关闭文件对象

In [21]: f.name
Out[21]: ‘/tmp/shell/test.txt‘

In [22]: f.read()  # 关闭后不能再查看了
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-22-bacd0e0f09a3> in <module>()
----> 1 f.read()

ValueError: I/O operation on closed file.

In [25]: f.closed
Out[25]: True

文件对象的操作和打开方式是相关

2、open函数mode参数详解

控制读写的模式:

‘r‘ :即mode=r,默认,只读打开,不可写;当文件不存在时,会抛出FileNotFoundError    
 ‘w‘:只写打开,不可读;会清空原文件,当文件不存在时,会新建
 ‘x‘ :仅新建文件,只写打开,不可读;当文件存在时,会抛出FileExistError   
 ‘a‘ :追加内容到文件末尾(最后一行的下面一行),只写,不可读;当文件不存在时,会新建

从读写的方面来看,只有r可读不可写,其它都是可写不可读

当文件不存在时,只有r抛出异常,其它的都创建新文件

当文件存在时,只有x抛出异常

从是否影响文件原始内容来看,只有w会清空文件

‘b‘ :以二进制的方式打开,    
 ‘t‘      
 ‘+‘       
 ‘U‘

时间: 2024-08-04 09:52:56

【IO】01、文件对象的相关文章

Java IO流中 File文件对象与Properties类

File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果文件存在,返回false booleanmkdir():创建目录,只能创建一级目录 booleanmkdirs():创建目录,可创建多级目录 删除 booleandelete():删除文件,如果文件不存在,返回false,如果删除的是目录,需要确保目录是空的 voiddeleteOnExit():程

IO流-获取指定目录下文件夹和文件对象【File类】

一.运用File类实现获取指定目录下文件夹和文件对象 1.File类 2.方法: 获取文件绝对路径 :getAbsolutePath 案例: import java.io.File; /** * 获取指定目录下文件夹和文件对象 * Created by lcj on 2017/11/7. */ public class fileTest03 { public static void main(String[] args) { File dirr = new File("D:\\xuexizili

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10

python之文件对象

防伪码忘情公子著 文件对象是用来访问文件系统接口所对应的数据的 文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构-即在磁盘上组织文件的方法 计算机文件或称文件.电脑档案.档案是存储在某种长期储存设备或临时存储设备中的一段数据流并且归属于计算机文件系统管理之下 概括来讲 文件是计算机中由OS管理的具有名字的存储区域 在Linux系统上文件被看做是字节序列 要想把数据存储到文件中有一个前提那就是必须序列化非序列化的数据是不能简单的存储在文件系统中的文件中的 对于python来说文件对象不仅可

IO流 文件File 的listFiles 方法(重要)

package com.yyq; import java.io.*; //File 类 /* * 用来将文件或者文件夹封装成对象 * 方便对文件和文件夹的属性信息进行操作 * File对象可以作为参数传递给流的构造函数 * 流只能处理数据 * */ /* * File 类的常见方法: * 1.创建 * boolean createNewFile() * 在指定位置创建文件,如果该文件已经存在,则不创建,返回false * 和输出流不一样,输出流对象--创建文件,文件存在会覆盖. * mkdir

获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)

import java.io.File; import java.io.FileFilter; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.List; public class huoquwenjian { /*获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中) * 思路: * 1,既然包含子目录,就需要递归. * 2

IO流文件的读写操作

字符流有两个抽象类:Writer   Reader.其对应子类FileWriter,FileReader可实现文件的读写操作 同样,字节流也有两个抽象类:InputStream OutputStream.其对应子类有FileInputStream,FileOutputStream可实现文件读写 IO流中的重要方法:read()方法返回-1,readLine方法返回null.用法列如:while((line=br.readLine())!=null).Scanne类中的hasNext()方法如果此

IO流 文件 File

package com.yyq; import java.io.*; //File 类 /* * 用来将文件或者文件夹封装成对象 * 方便对文件和文件夹的属性信息进行操作 * File对象可以作为参数传递给流的构造函数 * 流只能处理数据 * */ /* * File 类的常见方法: * 1.创建 * boolean createNewFile() * 在指定位置创建文件,如果该文件已经存在,则不创建,返回false * 和输出流不一样,输出流对象--创建文件,文件存在会覆盖. * mkdir

转载 IO、文件、NIO【草案四】

本章目录: 1.IO类相关内容 2.文件和目录 3.文件高级操作  NIO详解[1]——缓冲区(Buffer)[深入理解,总结自<Java-NIO>]: [*:下边的Buffer又指代抽象的缓冲区结构模型,同样代表Java语言里面的Buffer类的实例,这里不区分二者的概念了.] Buffer类基本概念: 一般而言,Buffer的数据结构是一个保存了原始数据的数组,在Java语言里面封装成为一个带引用的对象.Buffer一般称为缓冲区,该缓冲区的优点在于它虽然是一个简单数组,但是它封装了很多数