Python文本文件操作

单个文本文件读取

1.读取文本文件的旧型语法

示例:

读取名为file_to_read.txt的文本文件内容。

文本文件内容:

I
love
Rock
n
Roll.
input_file = "E:/CVSwork/PythonDataAnalysisFoundation/file_to_read.txt" #文件路径
#文件路径以下面这种形式表示也行
#input_file = "E:\\CVSwork\\PythonDataAnalysisFoundation\\file_to_read.txt"
filereader = open(input_file, 'r')  #'r' 表示打开文件的方式是只读
#按行输出文本文件内容
for row in filereader:print(row.strip())  #strip()用于取出每行最后的换行符
filereader.close()  #关闭文件,必须执行这不操作

输出结果:

I
love
Rock
n
Roll.

2.读取文本文件的新型语法

示例:

与上面示例读取相同的文本文件

input_file = "E:/CVSwork/PythonDataAnalysisFoundation/file_to_read.txt" #文件路径
#文件路径以下面这种形式表示也行
#input_file = "E:\\CVSwork\\PythonDataAnalysisFoundation\\file_to_read.txt"
with open(input_file, 'r', newline = '') as filereader'for row in filereader:print(row.strip())  #strip()用于取出每行最后的换行符

运行结果:与上面相同。

新旧两种语法型区别:

  1. 从Python 2.5开始,支持新型语法;
  2. 新型语法采用with语句来创建文件对象;
  3. with语句结束时会自动关闭文件,不必使用filereader.close()。

3.读取整个文件

示例:

input_file = "E:/CVSwork/PythonDataAnalysisFoundation/file_to_read.txt" #文件路径
with open(input_file, 'r', newline = '') as filereader:content = filereader.read() #用read()读取整个文件print(content)

运行结果:与上面相同。

4.创建一个包含文件各行内容的列表

示例:

input_file = "E:/CVSwork/PythonDataAnalysisFoundation/file_to_read.txt" #文件路径
with open(input_file, 'r', newline = '') as filereader:lines = filereader.readlines() #用readlines()创建列表print(lines)

运行结果:

['I\r\n', 'love\r\n', 'Rock\r\n', 'n\r\n', 'Roll.']

使用glob读取多个文本文件

在很多商业应用中,需要对多个文件进行相同或相似的处理。

读取多的文件需要在脚本文上方添加 import globimport os 两个语句。

当导入了os模块之后,就可以使用它提供的若干种路径名函数了。例如:os.path.join函数可以巧妙地将一个或多个路径成分连接在一起。glob模块可以找出与特定模式相匹配的所有路径名。os模块和glob模块组合在一起使用,可以找出符合特定模式的某文件夹下面的所有文件。

示例:

import os
import glob#inputPath是文件夹路径,该文件夹中存放file_to_read.txt与file_to_read2.txt
inputPath = "E:\\CVSwork\\PythonDataAnalysisFoundation"
for input_file in glob.glob(os.path.join(inputPath, '*.txt')):print("input_file: ", input_file)with open(input_file, 'r', newline = '') as filereader:for row in filereader:print(row.strip())

os.path.join() 函数将括号内的参数以文件路径的形式连接在一起,即 “E:\CVSwork\PythonDataAnalysisFoundation\filename.txt”; glob.glob() 函数按照特定模式进行路径名匹配,即在路径 “E:\CVSwork\PythonDataAnalysisFoundation” 下寻找txt文件。

运行结果:

input_file:  E:\CVSwork\PythonDataAnalysisFoundation\file_to_read.txt
I
love
Rock
n
Roll.
input_file:  E:\CVSwork\PythonDataAnalysisFoundation\file_to_read2.txt
I
like
jazz,
too.

写入文本文件

Python提供了两种简单的方法来将输出写入文本文件和分隔符文件。 write 方法可以单个字符串写入一个文件, writelines 方法可以将一系列字符串写入一个文件。

如果写入文件存在,则文件中原来的内容将会被覆盖;如果输入文件不存在,则会自动新建一个文件,然后再写入内容。

示例:

my_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
max_index = len(my_letters)#write
output_file = "E:\\CVSwork\\PythonDataAnalysisFoundation\\file_to_write.txt"    #文件路径
filewriter = open(output_file, 'w') #创建文件对象,'w'表示‘可写’
for index in range(max_index):if index < max_index - 1:filewriter.write(my_letters[index] + "\t")  #使用write写入文件else:filewriter.write(my_letters[index] + "\n")my_words = ["I ", "Love ", "Rock 'N' Roll."]
filewriter.writelines(my_words) #使用writelines写入文件
filewriter.close()  #关闭文件

运行结果:

file_to_write.txt文件中的内容形式如下。

a    b   c   d   e   f   g   h
I Love Rock 'N' Roll.

文本文件内容追加

将新的内容追加到一个已经存在的输出文件末尾(文件不存在则会新建一个)。与写入文件不同,追加不会覆盖文件中原来的内容。

示例:

output_file = "E:\\CVSwork\\PythonDataAnalysisFoundation\\file_to_append.txt"
filewriter = open(output_file, 'a')
filewriter.write("I'm Ziggy. " + "\n")
my_words = ["I ", "Love ", "Rock 'N' Roll."]
filewriter.writelines(my_words)
filewriter.close()

运行结果:

file_to_write.txt文件中的内容形式如下。

I'm Ziggy.
I Love Rock 'N' Roll.

再运行一次,file_to_write.txt文件中的内容形式如下。

I'm Ziggy.
I Love Rock 'N' Roll.
I'm Ziggy.
I Love Rock 'N' Roll.

在原文件内容后面又追加了一遍相同的内容。


关于参数 newline = ‘’

newline = “”;

\r 的意义。


文件打开方式

r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式

rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+: 打开一个文件用于读写。文件指针将会放在文件的开头。

rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w: 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+: 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。


参考文献:
《Python编程从入门到实践》
《Python数据分析基础》

Python文本文件操作相关推荐

  1. python程序基础知识(五)python文本文件操作

    目录 1.概述 2.写文本文件 3.读文本文件 3.1 读字符函数read 3.2 读取一行的函数readline和读取所有行的readlines 4.文件编码 5.文件指针 6.二进制文件 1.概述 ...

  2. python文本文件操作诗句给上一句输出下一句_[Python] 自动化办公 定制微信每日一句诗...

    转载请注明:陈熹 chenx6542@foxmail.com (简书号:半为花间酒) 若公众号内转载请联系公众号:早起Python 这篇文章能学到的主要内容: 利用"喵提醒"推送消 ...

  3. python - 文本文件操作的方法

    文件的操作 file文件使用流程: 1.打开文件 open("文件路径",mode='') 2.操作文件 file.read() .file.write() 3.关闭文件 file ...

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

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

  5. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  6. python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  7. Python文件操作学习总结

    Python读写文件 1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open( ...

  8. python文本文件csv_我的第一个Python项目:如何将杂乱无章的文本文件转换为纯净的CSV文件

    python文本文件csv So I decided to learn Python. Turns out this computer programming language isn't so ha ...

  9. cmd中如何运行python文件_在cmd中运行.py文件: python的操作步骤

    在cmd中运行.py文件: python的操作步骤 1 打开cmd, 不改变运行的目录: 输入python 空格  调试好的python文件路径 或者python 空格  将python文件拖入cmd ...

最新文章

  1. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
  2. 【Mac】【环境变量】
  3. python的语法类似php_PHP实现类似python__mian__=__name__来单独执行类文件
  4. Teradata天睿公司推出适用各种部署环境的全球最强分析数据库
  5. createdroptargets_使用DUILIB建立项目
  6. 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪【华为云分享】
  7. Microsoft Edge更新:支持WebVR,使Flash可以即点即运行
  8. python网络编程初级
  9. Nacos 介绍 --- 单机、集群部署
  10. 计算机驱动程序检测,检测到计算机制造商图形驱动程序对于显卡驱动程序
  11. EnableViewState 属性
  12. eclipse快捷键总结
  13. 使用urllib发起请求- urlopen发起请求read/decode/getcode/info/geturl-post请求抽屉网
  14. html 水平、垂直 菜单栏
  15. matlab重叠保留法,【matlab实现】重叠相加法与重叠保留法
  16. 手机端网页尺寸html,手机端网页设计尺寸_html/css_WEB-ITnose
  17. 【C++版Opencv】【Ubuntu】VScode配置Opencv
  18. 最小二乘,最大似然,最大后验,查准率与查全率
  19. 计算机与生物科学结合的论文,生物信息学论文范文
  20. 未来可期(关于高考和现在处境的看法)

热门文章

  1. EndNote文献信息如何批量修改
  2. 信用5C分析法(转载)
  3. Qt之FFMpeg 实现视频解码、编码、转码流程详解
  4. vIDC2.0 端口映射工具
  5. win7讲述人修复_win7讲述人无法正常启动
  6. excel白屏未响应_关于Excel联网状态下打开某些xls(xlsx)文件巨慢(白屏,假死)...
  7. JIRA中导出BUG列表是CSV格式的,打开后是乱码
  8. mininet自建topo后查看信息的一些操作
  9. 2021年A特种设备相关管理(锅炉压力容器压力管道)报名考试及A特种设备相关管理(锅炉压力容器压力管道)新版试题
  10. keras报错 ValueError: Shape must be rank 1 but is rank 0 for 'bn_conv1/Reshape_4' (op: 'Reshape') 不用降级