python文件处理——文本文件


  hello!我是wakeyo_J,每天一个konwledge point,一起学python,让技术无限发散。


文本文件

  • python文件处理——文本文件
  • 1. 建立文件
    • 1.1 文本文件代码实现
    • 1.2 代码编写分析
  • 2. 基本的读写文件
    • 2.1 用文件对象write(s)方法写内容
    • 2.2 用文件对象read()方法读取内容
    • 2.3 连续用read()方法、write()方法操作文件
  • 3. 复杂的读写文件
  • 4. 文件异常处理
  • 5. 文件与路径
    • 5.1 与路径相关的操作
    • 5.2 动态指定路径下建立新文件
  • 总结

文本文件具备初步存放、编辑各类数据的能力,并可以持久保留和数据共享。

1. 建立文件

  建立文本文件有两种途径:一是通过Windows的“记事本”工具创建一个扩展名为“.txt”的文件,然后供程序调用。二是通过程序自动建立新文件。

1.1 文本文件代码实现

newfile = "g:\\t1.txt"   #定义需要建立的文本名称和路径
b_new_file = open(newfile,"w")     #用open函数建立一个新的文本文件
b_new_file.close()     #关闭文件
print("%s成功建立!"%newfile)

效果:

1.2 代码编写分析

  1. 文本文件的名称
    (1)文本名称,命名要符合命名内容,一般情况下以英文字母、数字、汉字开头的易于阅读的字符串组合。不能使用星号(*)等特殊符号开头的命名。
    (2)文本名称是一个字符串,命名过程中需要考虑到转义符号对路径或名称的影响。如:“g:\t1.txt”中的“\t”本身就是一个横向制表符,如果用“g:\t1.txt”就会出错。另一种解决字符串转义符的方法是在字符串前加原始字符串限制符号(原生字符r或R)可以原样输出r“g:\t1.txt”。
    (3)指定路径必须设置(在不同的解释器中,对于路径的设置有区别)
  2. 用open函数建立(打开)文件
    open函数属于系统内置函数,支持对字符串或二进制文件的打开操作,返回可操作的文件对象。
    使用格式:

open(file,mode=“w”)

  file参数用于指定需要操作的文件名(可以同时只当文件路径);mode参数用于指定需要操作的方式。

  r、w、x、a为打开文件的基本模式,对应这只读、只写、新建、追加四种打开方式;b、t、+、U与基本模式组合使用,对应二进制、文本、读写、通用换行符四种模式。
  mode默认值为“rt”模式,意味着对文本文件进行读操作。目前,mode值常见可以组合的方式为“rb"、”wb“、”xb“、”ab“、”rt“、”wt“、”xt“、”at“、”r+“、”w+“、”x+“、”a+“。

  1. 用b_new_file.close()方法把新建立的文件关闭
      如果不关闭新建立的文本文件,则打开的文件对象一直留存在内存中,如果打开的文件多了,容易出现内存溢出等错误。

2. 基本的读写文件

  打开文本文件后,可以对文件进行基本的读写操作。

2.1 用文件对象write(s)方法写内容

  f.write(s),f代表可写方式打开文件对象;s为将要写入文件的内容,write()方法把s内容写入文件f后,返回写入的字节数。

newfile = "g:\\t1.txt"   #定义需要建立的文本名称和路径
b_new_file = open(newfile,"w")     #用open函数建立一个新的文本文件
t_n = b_new_file.write("l like python!")   #用文件对象write()方法写字符串
b_new_file.close()     #关闭文件
print("往文件里写入%d字节内容"%t_n)

效果:


  ”w“模式打开的文本文件,在写入内容时,第二次写入的内容会覆盖第一次保存的内容,若要解决此问题,采用”a“模式打开文件。

2.2 用文件对象read()方法读取内容

  f.read(size),f代表可读方式打开的文件对象;size为可选参数,若指定读取字节数,则读取指定大小字节的内容,若没有指定,则读取尽可能大的内容。

b_new_file = open(newfile,"r")      #以只读方式打开文件
tt = b_new_file.read()           #用文件对象read()方法读取内容
print(tt)
b_new_file.close()

效果:

2.3 连续用read()方法、write()方法操作文件

b_new_file = open(newfile,"r+")     #用open函数建立一个新的文本文件
tt = b_new_file.read()           #用文件对象read()方法读取内容
print(tt)
t_n = b_new_file.write("\n三酷猫!^_^")     #继续往文件里写入新内容
b_new_file.close()
print("往文件里写入%d字节内容"%t_n)

效果:

注意:不鼓励连续读写操作方法,因为存在读写数据不确定性问题

3. 复杂的读写文件

  在基础的读写存在上,可以考虑多行读写的操作。

  1. 一次写入多行
nums = ["one","two","three","four","five","six","seven"]
t = open(r"g:\t2.txt","a")    #追加打开文件
for get_one in nums:t.write(get_one+"\n")     #将每个元素循环写入文件,行末加\n
t.close()
print("连续写入完成")

效果:

  1. 一次读一行
      f.readline(s),f代表以可读模式打开的文件;s为可选参数,若设置指定大小的字节,则返回相应大小的字符串,若没有设定,则以行单位返回字符串。
t1 = open(r"g:/t2.txt","r")
dd = 1
while dd:dd = t1.readline()    #一次读一行print(dd.strip())      #strip()去除字符串两端的空字符

效果:

  1. 以列表格式读取多行
t1 = open(r"g:/t2.txt","r")
t_s = t1.readlines()            #以列表格式读取多行
print(t_s)

效果:

  1. 连续读特定字节数量的内容
f = open(r"g:/t2.txt","r")
print(f.readline(2))         #读取文件头2个字节
print(f.readline())          #继续读取同一行,剩余字节
print(f.read(4))             #继续读取4个字节
print(f.read(4))

效果:

  1. 在指定位置读内容
    5.1 f.tell(),f代表打开的文件,tell()方法返回当前文件可以写入读写的位置(字节数)
f = open(r"g:/t2.txt","r")
print(f.readline(2))         #读取文件头2个字节
print(f.readline())          #继续读取同一行,剩余字节
print(f.read(4))             #继续读取4个字节
print(f.read(4))
print(f.tell())    #获取执行上述操作后的当前位置
print(f.read(1))
print(f.tell())

效果:

  5.2 f.seek(offset[,whence])
  f代表以打开的文件,seek()方法重新指定将要读写的当前位置。offset参数设置位置的偏移量的字节数,whence参数可选,确定文件起计位置,默认值为SEEK_SET(或0),代表从文件大的开始位置+偏移量来确定当前位置;SEEK_SET(或1),代表当前位置起计;SEEK_END(或2),代表从文件的结尾起计。

print(f.seek(17))
print(f.read(4))

效果:

  1. 在指定位置写内容
f3 = open(r"g:/t2.txt","w")
print(f3.seek(17))
f3.write('---')
f3.close()

效果:

4. 文件异常处理

f_n = r"g:\t3.txt"
flag = False
try:                    #异常捕捉开始f = open(f_n,"r")   #打开t3.txt文件print(f.read())flag=True
except:                 #捕捉异常print("打开%s文件出错,请检查!"%f_n)      #出错提示
finally:                #是否出错,都强制执行下列代码if flag:            #如果文件打开顺利f.close()       #则关闭文件print("文件做关闭处理!")else:               #文件打开出现异常print("程序关闭")

效果:

5. 文件与路径

5.1 与路径相关的操作

  1. 获取程序运行的当前路径
    os.path.abspath§,abspath()以字符串形式为返回平台归一化的绝对路径,p为指定的路径名称(字符型),若p为指定”(.)“,则代表当前路径。
import os
print(os.path.abspath(os.path.curdir))   #返回当前绝对路径

效果:

  1. 判断指定路径下是否存在文件
import os
print(os.path.exists(r"g:\\t1.txt"))        #用exists()方法判断文件是否已经存在

效果:

  exists§方法判断指定路径下的文件是否存在。若存在,则返回True,若不存在,则返回False。p为指定的来路径的文件字符串,也可以通过isfile()方法直接判断。

  1. 判断指定路径是否存在
    isdir§方法判断指定路径是否存在,p为字符串格式的路径,存在返回True,不存在则返回False。
import os
print(os.path.isdir(r"g:\\"))       #用isdir()方法判断路径是否存在

效果:

  exists§方法也可以用来直接判断路径

import os
print(os.path.exists(r"g:\\"))        #用exists()方法直接判断路径

效果:

  1. 建立文件夹(子路径)
    利用os模块的makedirs§方法可以建立对应的文件夹,p为字符串形式的需要建立的路径,建立不成功,抛出OSError出错信息;建立成功,则在对应的路径下将发现新建立的文件夹。
import os
print(os.makedirs(r"g:\\files"))      #在g盘建立files文件夹

效果:

5.2 动态指定路径下建立新文件

import os
import sysget_cur_path = os.path.abspath(os.path.curdir)
f_n = get_cur_path+"\\files"   #在当前路径建立子路径files
try:if not os.path.isdir(f_n):   #确认路径是否存在os.makedirs(f_n)         #不存在,建立子路径
except:                          #建立子路径过程发生异常print("子文件夹%s建立出错!"%f_n)   #提示建立出错sys.exit()                      #退出程序f_n = f_n+"\\t3.txt"
flag = False
try:f =open(f_n,"w")print(f.write("ok"))flag=Trueprint("文件%s写入正常!"%f_n)
except:print("打开%s文件出错,请检查!"%f_n)
finally:if flag:f.close()print("文件做关闭处理!")else:print("程序关闭")

效果:


总结

  本文属于作者原创,转载请注明出处,不足之处,希望大家能过给予宝贵的意见,如有侵权,请私信。每天一个knowledge point,一起学python,让技术无限发散

python文件处理——文本文件相关推荐

  1. Python文件操作-文本文件、二进制文件、csv文件的读取写入、OS、shutil、CSV模块、常用字符编码

    Python文件操作 文本文件和二进制文件 文件操作相关模块 open()创建文件对象 文件对象的常用属性和方法 pickle 序列化 文本文件读取和写入 文本文件写入步骤 write()/write ...

  2. python文件处理seek_python文件操作 seek(),tell()

    seek():移动文件读取指针到指定位置 tell():返回文件读取指针的位置 seek()的三种模式: (1)f.seek(p,0)  移动当文件第p个字节处,绝对位置 (2)f.seek(p,1) ...

  3. 看了这篇,你也是Python文件操作高手

    Python文件操作 文本文件和二进制文件 文件操作相关模块概述 创建文件对象 open() 文本文件的写入 基本的文件写入操作 常用编码介绍 ASCII ISO8859-1 GB2312,GBK,G ...

  4. python读取txt文件写入-Python读写txt文本文件的操作方法全解析

    一.文件的打开和创建 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python! hello world! ...

  5. python统计文件中的中文字数-Python实现统计文本文件字数的方法

    本文实例讲述了Python实现统计文本文件字数的方法.分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- impor ...

  6. python创建空文本文件_Python干货:「文件处理整合」 创建、打开、写入和删除...

    什么是Python文件处理? Python文件处理就是如何在python中创建.打开.读取.写入和删除文件的示例.从文件(EXCELSheet.doc文件.文本文件.cv等)或Add中读取数据.是一个 ...

  7. 怎么保存python文件_python如何保存文本文件

    python保存文本文件的方法: 使用python内置的open()类可以打开文本文件,向文件里面写入数据可以用write()函数,写完之后,使用close()函数就可以关闭并保存文本文件了 示例代码 ...

  8. python里怎么读取文件-python怎么读取文本文件

    python怎么读取文本文件? 文件的读取 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() ...

  9. Python文件操作-写文本文件

    本关任务:从键盘输入数据,保存到文本文件当中. 相关知识 为了完成本关任务,你需要掌握写文本文件的方法. 写文本文件 python文件对象提供了两个"写"方法: write() 和 ...

  10. python切割txt文件_用Python实现大文本文件切割的方法

    在实际工作中,有些场景下,因为产品既有功能限制,不支持特大文件的直接处理,需要把大文件进行切割处理. 当然可以通过UltraEdit编辑工具,或者从网上下载一些文件切割器之类的.但这些要么手工操作太麻 ...

最新文章

  1. 操作系统学习笔记 第六章:设备管理(王道考研)
  2. UVALive5379 UVA270 Lining Up
  3. TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable
  4. Linux—vim常用命令
  5. 一个菜鸟程序员的游戏开发心得
  6. Javascript处理时间
  7. (2)verilog语言编写打两拍
  8. 并发编程 - 线程 - 1.线程queue/2.线程池进程池/3.异步调用与回调机制
  9. 内连接,外连接,临时表,定义表,视图
  10. NTKO文档编辑求解决
  11. Air202掉坑日记(1)——烧录固件(AT版本)
  12. 维修 空调 碰上 骗子
  13. Texpad for Mac v1.9.6 中文版 专业的LaTeX编辑器
  14. java 吸血鬼数字_java编程思想之吸血鬼数字
  15. Kali/Ubuntu GVM (openvas)安装及使用
  16. 海信A5 pro 测评
  17. D15-Acwing-3.2-4.1代码实现
  18. 交易码 MWS X7 会计科目表 XXX 没有在表 T030K 中定义/交易码 VST J2 会计科目表 XXX 没有在表 T030K 中定义
  19. 生成6位数数字验证码
  20. MySQL中常用的存储引擎(MyISAM 和InnoDB)

热门文章

  1. 设计模式_单例模式回顾_C#版不使用锁保证多线程安全
  2. 机器学习_回归和分类的区别
  3. VAE-《Auto-Encoding Variational Bayes》----Section2部分的有关理解
  4. Windows远程访问Linux (Ubuntu)服务器
  5. 一文详解深度相机之TOF成像
  6. log4j 配置和使用
  7. Python虚拟机之if控制流(一)
  8. 5.hbase表新增数据同步之add_peer
  9. MATLAB中的fopen、fclose、fprintf、fscanf、fread、fwrite
  10. android 分辨率适配的方法