读写文件

首先看一个例子: f = open('thefile.txt','w') #以写方式打开,

try:

f.write('wokao')

finally:

f.close()

文件的打开方式: f = open(‘文件','mode')

‘r':只读(缺省。如果文件不存在,则抛出错误)

‘w':只写(如果文件不存在,则自动创建文件),此时无法调用f.read()方法,且当调用f.write()时,将清空文件原有内容

‘a':附加到文件末尾

‘r+':读写

如果需要以二进制方式打开文件,需要在mode后面加上字符”b”,比如”rb”,”wb”等

文件的属性: f.closed #标记文件是否已经关闭,由close()改写

f.encoding #文件编码

f.mode #打开模式

f.name #文件名

f.newlines #文件中用到的换行模式,是一个tuple

f.softspace #boolean型,一般为0,据说用于print

文件的读写方法: f.read([size]) #size为读取的长度,以byte为单位

f.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分

f.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分

f.write(str) #把str写到文件中,write()并不会在str后加上一个换行符

f.writelines(seq) #把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西

f.close() #关闭文件

f.flush() #把缓冲区的内容写入硬盘

f.fileno() #返回一个长整型的”文件标签“

f.isatty() #文件是否是一个终端设备文件(unix系统中的)

f.tell() #返回文件操作标记的当前位置,以文件的开头为原点

f.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的

f.seek(offset[,from]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了from参数就不一定了,from可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。

f.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。

python在读取一个文件时,会记住其在文件中的位置,如果第二次仍需要从头读取,则需要调用f.seek(0)重新从头开始读取。

一些例子: >>> f = open('hi.txt','w')

>>> f.closed

False

>>> f.mode

'w'

>>> f.name

'hi.txt'

>>> f.encoding

压缩和解压缩文件(zip/unzip)

1,单个文件压缩成zip文件 #!/usr/bin/python

import zipfile

f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)

f.write('1.py')

f.write('/root/install.log')

f.close()

仔细观察压缩以后的archive.zip,里面有一个1.py和一个root的目录,root目录下有一个install.log

ZIP_DEFLATED是压缩标志,如果使用它需要编译了zlib模块,如果仅仅是打包而不压缩的话,可以改为zipfile.ZIP_STORED

2,把zip文件解压缩 #!/usr/bin/python

import zipfile

zfile = zipfile.ZipFile('archive.zip','r')

for filename in zfile.namelist():

data = zfile.read(filename)

file = open(filename, 'w+b')

file.write(data)

file.close()

如果archive.zip里有目录,则在当前目录下也应该存在对应的目录,否则会报错。

3,把整个文件夹压缩 #!/usr/bin/python

import zipfile

import os

f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)

startdir = "c:\\\\mydirectory"

for dirpath, dirnames, filenames in os.walk(startdir):

for filename in filenames:

f.write(os.path.join(dirpath,filename))

f.close()

如果出现: Compression requires the (missing) zlib module

解决方法: yum install zlib zlib-devel

,然后重新编译安装python

python读压缩文件内容_使用Python读写及压缩和解压缩文件的示例相关推荐

  1. python替换文件内容_使用python替换文件内容

    # 传入文件(file),将旧内容(old_content)替换为新内容(new_content) def replace(file, old_content, new_content): conte ...

  2. 怎么读取h5文件内容_【Python编程特训连载72】读取two.txt文件,模拟输出“两会”内容 答案公布...

    董明珠是中国产业界的女强人,她曾经说过 "两会"的名言:"成功人的两会:开会,培训会.普通人的两会:约会,聚会.穷人的两会:这也不会,那也不会.奋斗的人两会:必须会,一定 ...

  3. 批量处理word文件内容_用python批量提取word文件信息,导出到excel文件

    技术的运用可以解决大量重复处理的工作,提高效率. 比如,有大量的论文电子文档(.docx格式),需要提取文档中的题目.作者.单位等信息制成表格(.xlsx格式),一般每篇论文的题目在第1行,副标题在第 ...

  4. python如何读取weboutlook内容_用Python通过MAPI读取Outlook中的电子邮件

    我正在尝试编写一个简短的程序,该程序将读取exchange/Outlook配置文件中某个文件夹中电子邮件的内容,以便可以操作数据.但是,我在查找有关python和exchange/Outlook集成的 ...

  5. python删除txt指定内容_使用Python删除文本文件中的部分内容 | 学步园

    为了学习英语,我把从网上下载下来的电影转换成纯MP3文件,放到iTouch里去了,这样就可以直接练习听力了,另外把下载下来的字幕也放进去,听不懂的时候可以看,但有一个问题,网上载下来的字幕格式都如下所 ...

  6. python uiautomation选择list内容_使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,...

    首先安装pip install uiautomation, 再运行本文代码.或者下载https://github.com/yinkaisheng/Python-UIAutomation-for-Win ...

  7. python读excel字体颜色_无法使用python xlsxwri更改excel中的字体颜色

    在XlsxWriter中使用条件格式时,最好先弄清楚要在Excel中执行什么操作,然后将其传输到XlsxWriter.在 在这种情况下,Excel不支持单元格与字符串相等.相反,你必须使用" ...

  8. python发送短信内容_通过Python发送短信

    我正在使用以下代码连接到手机以发送短消息:import serial import time phone = serial.Serial() phone.baudrate = 38400 phone. ...

  9. python爬取小说内容_使用python爬取小说全部内容

    爬取代码为import urllib.request from bs4 import BeautifulSoup #coding: utf-8 class xiaoShuo(): def __init ...

最新文章

  1. matlab 冒号操作符
  2. JAVA中console方法怎么用_Java中Console对象实例代码
  3. 每天5分钟玩转容器技术 ---- 系列文章
  4. 服务器如何导入数据库文件格式,服务器如何导入数据库文件格式
  5. 如何提取明细表头_如何在实际操作中应用偏移修剪?
  6. 数据结构和算法的选择
  7. threadlocal存连接对象的目的_ThreadLocal 介绍
  8. MySQL 报错:Translating SQLException with SQL state '42000', error code '1064', message
  9. 【Java篇】 Java小游戏中加入背景音乐
  10. 10KV高压电缆的直流耐压究竟是多少?
  11. html可以转换wps嘛,如何将图文并茂的网页快速转换为WPS或word文档
  12. D. Count GCD
  13. 屎上最详细最生动的TFT液晶显示屏原理介绍
  14. python dataframe重新索引_Concat DataFrame重新索引仅对唯一值索引对象有效
  15. 国行版苹果 ios 按键精灵无法联网问题处理
  16. C语言结构体struct的语法解析
  17. OO系统分析员之路--用例分析系列(4)--业务建模一般步骤和方法[整理重发]
  18. tomcat错误“Attribute value is quoted with which must be escaped when used within the value”
  19. 收藏了,挺有意思的生成太极图
  20. 智能信息检索课程设计

热门文章

  1. c java python go 哪种编程语言接近编程的本质_一图看懂编程语言迁移模式:终点站是Python、Go、JS...
  2. python新建文件夹口令_Python脚本破解压缩文件口令实例教程(zipfile)
  3. mysql中连接运算符_MySQL的运算符
  4. webpack html自动引入,开发必备的webpack4
  5. ajax调用后台java方法,jquery ajax再次封装,前台调用后台java方法直接返回数据
  6. HALCON 21.11:深度学习笔记(2)
  7. SpringBoot+Swagger整合API
  8. MySQL8.0二进制免编译部署过程详解(二)
  9. 为什么你应该在 OpenResty 项目中使用 lua-resty-core
  10. flask+uwsgi 在调试过程中让python文件的更改自动重启uwsgi