python的文件操作方法python中的文件对象: 文件内建函数[open()和 file()] 1 open('filename')2 with open('filename') as f:3 pass open函数使用一个文件名作为唯一的强制参数,然后返回一个文件对象。模式和缓冲参数都是可选的,默认为只读模式打开文件。使用with即使发生错误可以关闭文件, 1 文件模式 操作 2 r 以只读方式打开 3 rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) 4 w 以写方式打开 (必要时清空) 5 a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) 6 r+ 以读写模式打开 7 w+ 以读写模式打开 (参见 w ) 8 a+ 以读写模式打开 (参见 a ) 9 rb 以二进制读模式打开10 wb 以二进制写模式打开 (参见 w )11 ab 以二进制追加模式打开 (参见 a )12 rb+ 以二进制读写模式打开 (参见 r+ )13 wb+ 以二进制读写模式打开 (参见 w+ )14 ab+ 以二进制读写模式打开 (参见 a+ )15 x 如果文件存在报错,不存在则创建16 ***加b模式打开,不可以在指定encoding,切写入时也需要转换为字节写入文件17 18 下面是一些打开文件的例子:19 f = open('/etc/motd') # 以读方式打开20 f = open('test', 'w') # 以写方式打开21 f = open('data', 'r+') # 以读写方式打开22 f = open('io.sys', 'rb') # 以二进制读模式打开23 24 bytes 字符串转换字节类型25 n=bytes(李杰,encoding='utf-8')[转换的字符,可以是变量,转换后的编码]26 字节转换为字符串27 str(bytes(李杰,encoding='utf-8'),encoding='utf-8)28 文件操作 open() 和 file() 函数具有相同的功能, 可以任意替换.任何使用 open() 的地方, 都可以使用 file() 替换它.建议使用 open() 来读写文件, 在处理文件对象时使用 file() 。open() 成功执行并返回一个文件对象之后, 所有对该文件的后续操作都将通过这个"句柄"进行. 文件方法可以分为四类: 输入, 输出, 文件内移动, 以及杂项操作. read() 方法用来直接读取字节到字符串中, 最多读取给定数目个字节. 如果没有给定 size 指定读取size: readline() 方法读取打开文件的一行(读取下个行结束符之前的所有字节). 然后整行,包括行 readlines() 方法并不像其它两个输入方法一样返回一个字符串. 它会读取所有(剩余的)行然 输出 文件内移动 #跳过前五个字符,读取之后的内容 truncate() 方法, 它接受一个可选的 size 作为参数. 如果给定, 那么文 其他: close() fileno() 方法返回打开文件的描述符. 这是一个整数, 可以用在如 os 模块( os.read() )的 flush() 方法会直接把内部缓冲区中的数据立刻写入文件, 而不是被动地等待输出缓冲 文件对象的内建方法列表 1 文件对象的方法 操作 2 file.close() 关闭文件 3 file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值) 4 file.flush() 刷新文件的内部缓冲区 5 file.isatty() 判断 file 是否是一个类 tty 设备 6 file.nexta() 返回文件的下一行(类似于 file.readline() ), 或在没有其它行时 7 引发 StopIteration 异常 8 file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候, 读 9 取剩余的所有字节, 然后作为字符串返回.如果打开模式无b,则read按字符读取,否则按字节读取10 file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size11 file=open('test','ab')12 file.write(bytes('hehe',encoding='utf-8')) 向文件写入字符串 (会覆盖原有数据,坑13 file.close() 关闭文件14 file.tell获取当前指针的位置15 file.read()如果打开模式无b,则read按字符读取,否则按字节读取16 file.fileno文件描述符17 file.truncat 截断数据,清除文件指针之后的数据18 file.seek(off, whence=0) 在文件中移动文件指针, 从 whence ( 0 代表文件其始, 1代表当前位置, 2 代表文件末尾)偏移 off 字节,不论是否有中文,都以字节为单位19 file.truncate(size=file.tell()) 截取文件到最大 size 字节, 默认为当前文件位置20 file.writelines(seq) 向文件写入字符串序列 seq ; seq 应该是一个返回字符串的21 可迭代对象22 file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回(包含所有的行结束23 符); 对文件系统的访问 对文件系统的访问大多通过 Python 的 os 模块实现. 该模块是 Python 访问操作系统功能的主 文件处理 1 chdir()/fchdir()a 改变当前工作目录/通过一个文件描述符改变当前工作目录2 chroot()d 改变当前进程的根目录3 listdir() 列出指定目录的文件4 getcwd()/getcwdu()a返回当前工作目录/功能相同, 但返回一个 Unicode 对象5 mkdir()/makedirs() 创建目录/创建多层目录6 rmdir()/removedirs() 删除目录/删除多层目录 访问/权限 1 access() 检验权限模式2 chmod() 改变权限模式3 chown()/lchown()a 改变 owner 和 group ID/功能相同, 但不会跟踪链接4 umask() 设置默认权限模式 文件描述符操作 1 open() 底层的操作系统 open (对于文件, 使用标准的内建 open() 函数)2 read()/write() 根据文件描述符读取/写入数据3 dup()/dup2() 复制文件描述符号/功能相同, 但是是复制到另一个文件描述符 设备号 1 makedev()a 从 major 和 minor 设备号创建一个原始设备号2 major()a /minor()a 从原始设备号获得 major/minor 设备号 os.path 可以完成一些针对路径名的操作. 它提供的函数可以完成管理和操作文 1 basename() 去掉目录路径, 返回文件名2 dirname() 去掉文件名, 返回目录路径3 join() 将分离的各部分组合成一个路径名4 split() 返回 (dirname(), basename()) 元组5 splitdrive() 返回 (drivename, pathname) 元组6 splitext() 返回 (filename, extension) 元组信息 1 getatime() 返回最近访问时间2 getctime() 返回文件创建时间3 getmtime() 返回最近文件修改时间4 getsize() 返回文件大小(以字节为单位) 查询 1 exists() 指定路径(文件或目录)是否存在2 isabs() 指定路径是否为绝对路径3 isdir() 指定路径是否存在且为一个目录4 isfile() 指定路径是否存在且为一个文件5 islink() 指定路径是否存在且为一个符号链接6 ismount() 指定路径是否存在且为一个挂载点7 samefile() 两个路径名是否指向同个文件 还有大量的其它模块与文件和输入/输出有关, 它们中的大多数都可以在主流平台上工作. 1 base64 提供二进制字符串和文本字符串间的编码/解码操作 2 binascii 提供二进制和 ASCII 编码的二进制字符串间的编码/解码操作 3 bz2a 访问 BZ2 格式的压缩文件 4 csv 访问 csv 文件(逗号分隔文件) 5 filecmpb 用于比较目录和文件 6 fileinput 提供多个文本文件的行迭代器 7 getopt/optparsea 提供了命令行参数的解析/处理 8 glob/fnmatch 提供 Unix 样式的通配符匹配的功能 9 gzip/zlib 读写 GNU zip( gzip) 文件(压缩需要 zlib 模块)10 shutil 提供高级文件访问功能11 c/StringIO 对字符串对象提供类文件接口12 tarfilea 读写 TAR 归档文件, 支持压缩文件13 tempfile 创建一个临时文件(名)14 uu 格式的编码和解码15 zipfilec 用于读取 ZIP 归档文件的工具 下面列举几个简单的示例: 对文件进行迭代而不使用变量存储文件对象 1 for line in open(finename):2 print(line) 同时打开两个文件 1 with open('user.txt') as f,open('user1.txt') as f2:2 pass 获取文件前十行 1 with open('db1', 'r', encoding="utf-8") as f1, open("db2", 'w',encoding="utf-8") as f2:2 times = 03 for line in f1: 替换文件内指定的字符串 1 with open('db1', 'r', encoding="utf-8") as f1, open("db2", 'w',encoding="utf-8") as f2:2 for line in f1:3 new_str = line.replace("alex", 'st')4 f2.write(new_str) |
|
来自: 黄鹤归 > 《python的各类语句》