Python3中文件处理

1、txt,xls,doc等文件的使用

f=open(“filename”,”w”)   打开一个用于写入的文件,要写入内容时使用f.write(“内容”)

f=open(“filename”,”r”)         打开一个用于读的文件,读时使用f.read(),返回读取的到的字符串;

f=open(“filename”,”a”)        打开的文件既可用于读,也可用于写;

注:以上方式打开的文件读取出来的内容是字符串,写入的时候也必须全都是字符串;

2、pickle模块

pickle提供了从python程序中保存数据最简单的方法,原理是直接将数据以二进制进行保存,可以将数据原封不动的保存和读取;但如果加载不可信源有安全危险;

以gzip压缩的文件都以一个特定的魔数引导。

f=open(filename,"wb")  #读取用"rb",追加用"ab",还有"rb+","wb+","ab+"表示可读可写;

pickle.dump(data,fh,pickle.HIGHEST_PROTOCOL)#pickle文件的写入方法

读取可用pickle.load(fh)

3、文件对象属性与方法

f.close()     关闭文件对象f,并将属性f.close设置为True;

f.close            文件已关闭,则返回True;

f.encoding      byte与str之间进行转换时使用的编码;

f.fileno()    返回底层文件的文件描述符;

f.flush()     清空文件对象;

f.isatty()   如果文件对象与控制台关联,就返回True;

f.mode          文件对象打开时使用的模式;

f.name          文件对象f的文件名(如果有);

f.newlines     文本文件f中的换行字符串的类型;

f.__next__()  返回文件对象f的下一行;

f.peek(n)  返回n个字节,而不移动文件指针的位置;

f.readable()   如果f已经打开等待读取,则返回True;

f.read(count)  从文件对象f中读取至多count个字节,如果没有指定count,就读取从当前文件指针直到最后的每个字节,以二进制模式时,返回bytes对象;以文件模式时,返回str对象;

f.readinto(ba)   将至多len(ba)个字节读入到bytearray ba中,并返回读入字节数,如果在文件结尾,就为0;

f.readline(count)     读取下一行,包括\n;

f.readlines(sizehint)      读入到文件结尾之前的所有行,并以列表形式返回;

f.seek(offset,whence)   如果没有给定whence,或其为os.SEEK_SET,就按给定的offset移动文件指针...

f.seekable()        如果f支持随机存取,就返回True;

f.tell()            返回当前指针位置;

f.truncate(size)     截取文件到当前文件指针所在位置,如果给定size,就到size大小处;

f.writable()         如果f是为写操作而打开的,就返回True;

f.write(s)       将文本对象s写入到文件;

f.writelines(seq)      将对象序列写入到文件;

时间: 2024-08-08 03:35:55

Python3中文件处理的相关文章

python3中文件操作及编码

#之前一直没明白文件处理中的w和wb的区别到底是什么,#在看过视频后才知道,原来在linux里面是没有区别的,#但是在windows里面就能够看出区别来了#下面来个例子: with open("普通文本文件.txt", "w",encoding='utf-8') as f: data = 'This is testing!\nThis is testing!' f.write(data) f.close() with open("二进制文本文件.txt&q

python3中实现客户端与服务端交互发送文件

在python3中实现客户端与服务端程序交互,从客户端发送文件到服务端 客户端代码:client.py #!/usr/bin/env python #_*_ encoding=utf-8 _*_ import socket,sys,os ip_port = ('127.0.0.1',9999) sk = socket.socket() sk.connect(ip_port) container = {'key':'','data':''} while True:     input_data =

把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案

把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败在python3中调用会成功,但是调用不能成功 解决办法是: 在该文件夹下加入空文件__init__.py python2会把该文件夹整体当成一个包 然后编辑__init__.py 加入__all__ = ["功能名1","功能名2",...../或者类名也行] 再通过from . import 模块名 这样就可以调用包中那些模块功能了 #如果导入这个模块的方式是 from 模块名 import

Python3中使用PyMySQL连接Mysql

在Python2中连接Mysql数据库用的是MySQLdb,在Python3中连接Mysql数据库用的是PyMySQL,因为MySQLdb不支持Python3.因为web.py与Django中连接数据库默认是用MySQLdb,所以在Python3中连接数据库会报错:No module named 'MySQLdb'.这时候怎么处理呢? 针对web.py来说,在.py文件中增加两行代码:import pymysqlpymysql.install_as_MySQLdb() 针对Django来说,在站

python之模块配置文件ConfigParser(在python3中变化较大)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ConfigParser(在python3中为configparser) #特别注意:python3和python2关于该模块的功能用法有很大的不同. #配置文件解析器 import ConfigParser,os #初始化一个配置文件对象 config=ConfigParser.ConfigParser() #增加一个section config.add_section('Sectio

python3中的小坑一个,八进制数值的表达

在python2 中 os.chmod('/root/text',0744) 可以直接改文件权限 在python3中 os.chmod('/root/text',0744) SyntaxError: invalid token 翻墙谷歌了下 顺便再次祝病魔早日战胜方教授 python3 中必须用 0o744 这样的方式 没错.数字零加字幕o 结果 os.chmod('/root/text',0o744) ll -d /root/text -rwxr--r-- 1 root root 0 Apr

python3中encode和decode的一些基本用法

python3中encode和decode跟python2还是有一定的区别的,在python3中: encode(编码):按照某种规则将"文本"转换为"字节流".  python 3中表示:unicode变成str decode(解码):将"字节流"按照某种规则转换成"文本".   python3中表示:str变成unicode 字符串在Python内部的表示是Unicode编码,因此在做编码转换时,通常需要以Unicode作

Python3 读写文件碰到的编码问题

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

sublime text中用python3运行文件

Edit sublime text中用python3运行文件 在sublime text中可以使用快捷键cmd + b(windows是CTRL + b)快速运行一个python文件,sublime会直接调用系统默认python运行文件,并在下面的框里弹出结果. 如果我们想要使用自己的python版本,如python3或者其他第三方python包(如本人使用的anaconda)要怎么办呢? sublime使用cmd+b的操作叫做build,在Tools -> Build System中可以看到系