Python中关于txt的简单读写模式与操作

Python中关于txt的简单读写操作

常用的集中读写模式:

1、r 打开只读文件,该文件必须存在。 
2、r+ 打开可读写的文件,该文件必须存在。 
3、w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 
4、w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 
5、a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 
6、a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
7、上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。

1 读取全部内容

try:
    #python3的open函数可以额外加一个encoding参数
    txt_file_handle=open("1.txt","r",encoding="utf-8")
    #read函数:直接取读文件的所有内容
    #参数:根据长度读取内容
    print(txt_file_handle.read(5))
    print("*"*50)
    #readline函数:读取文件的游标所在的一行
    #seek(0):将文件的游标指向最开始的位置
    txt_file_handle.seek(0)
    print(txt_file_handle.readline())
    print(txt_file_handle.readline())
    #readlines函数:去读文件的所有行,返回的是列表
    print("*"*50)
    print(txt_file_handle.readlines())
    print(txt_file_handle)
    txt_file_handle.close()
except FileNotFoundError as e:
    print ("文件不存在!")

2 逐行读取

# 打开文件
file_obj = open(txt_filename, ‘r‘)

# 逐行读取
line1 = file_obj.readline()
print(line1)

# 继续读下一行
line2 = file_obj.readline()
print(line2)

# 关闭文件
file_obj.close()

3 读取全部内容,返回列表

# 打开文件
file_obj = open(txt_filename, ‘r‘)

lines = file_obj.readlines()

for i, line in enumerate(lines):
    print (‘{}: {}‘.format(i, line))

# 关闭文件
file_obj.close()

4 写操作

# 打开文件
file_obj = open(txt_filename, ‘w‘)

# 写入全部内容
file_obj.write("《Python数据分析》")
file_obj.close()

# 打开文件
file_obj = open(txt_filename, ‘w‘)

# 写入字符串列表
lines = [‘这是第%i行\n‘ %n for n in range(100)]
file_obj.writelines(lines)
file_obj.close()

5 推荐写法

从上边几种读写方式中不难发现, 每次进行读写操作时都要调用close()函数将文件关闭, 使用起来并不方便,所以推荐以下写法:

try:
    with open("1.txt","r+",encoding="utf-8")as txt_file_handle:
        txt_file_handle.write()
except FileNotFoundError as e:
    print ("文件不存在!")

文件操作的推荐写法, 只要是文件操作,保险起见都要用try except进行异常捕获, with 写法的特点:不需要手动close, write() 里面填写内容即可, 其中

  with语句

  • 包括了异常处理,自动调用文件关闭操作,推荐使用
  • 适用于对资源进行访问的场合,确保无论适用过程中是否发生异常都会执行"清理"操作,如文件关闭、线程的自动获取与释放等
时间: 2024-08-03 01:20:06

Python中关于txt的简单读写模式与操作的相关文章

python中requirements.txt文件的读写

简介 Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号.以便新环境部署. 主要的写法如下所示 pip freeze > requirements.txt # 生成requirements.txt pip install -r requirements.txt # 从requirements.txt安装依赖

Python中读取txt文本出现:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape问题解决

windows中的路径是反斜杠\,然而反斜杠\在python中有着转义字符的意义,所以在py文件中写windows文件路径的时候,要特别注意反斜杠\的使用. 下面有三种解决方式: 1 # 方式一:转义的方式 2 'c:\\users\xxx\desktop\a.txt' 3 #方式二:显式声明字符串不用转义 4 r'c:\users\xxx\desktop\a.txt' 5 #方式三:使用linux的路径 6 'c:/users/xxx/desktop/a.txt' Python中读取txt文本

Python中从SQL型数据库读写dataframe型数据

Python的pandas包对表格化的数据处理能力很强,而SQL数据库的数据就是以表格的形式储存,因此经常将sql数据库里的数据直接读取为dataframe,分析操作以后再将dataframe存到sql数据库中.而pandas中的read_sql和to_sql函数就可以很方便得从sql数据库中读写数据. read_sql 参见pandas.read_sql的文档,read_sql主要有如下几个参数: sql:SQL命令字符串 con:连接sql数据库的engine,一般可以用SQLalchemy

Python中的lambda的简单介绍

在学习python的过程中,lambda的语法经常出现,现在将它整理一下,以备日后查看. 1.lambda是什么? 举个例子如下: 1 func=lambda x:x+1 2 print(func(1)) 3 #2 4 print(func(2)) 5 #3 6 7 #以上lambda等同于以下函数 8 def func(x): 9 return(x+1) 可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体.在这里lambda简化了函数定义的书写

python中关于list列表的增删查改操作

python中list的操#python创建列表的时候,会以堆栈的形式存放数据,从右向左往堆栈中存放数据 movies=["The holy Grail","The life of brain","The meaning of life"] movies=[] #len()表示长度print(len(movies))#python append在列表的末尾添加一个元素movies.append("Gillain")#pytho

Python中6种内建序列之通用操作

数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个元素索引是0,第二个则是1,一次类推. Python包含6中内建的序列,即列表.元组.字符串.Unicode字符串.buffer对象和xrange对象. 通用序列操作:索引.分片.序列相加.乘法.成员资格.长度.最小值和最大值 1. 索引 序列

C++中对txt文件的读写操作

最近在做颜色校正部分的操作,发现对C++文件的读写遗忘了,特记于此:改程序是实现对txt文件的写入与读出:这是初级的写法,有时间在搞一下高级写法:注意最后别忘了close掉打开的文件! 程序如下: // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<iostream> #include<fstream> #includ

python中栈和队列简单学习

栈#模拟栈结构#栈有先后顺序的.后进的先取出,先进的最后取出stack=[] #压栈(向栈里存数据)stack.append("a")print(stack)stack.append("b")print(stack) #出栈(在栈里取数据)res1=stack.pop()print("res1=",res1)print(stack)res2 =stack.pop()print("res2=",res2)print(stack)

Python中matplotlib模块的简单使用

测试代码如下: 1 # encoding:utf-8 2 import numpy as np 3 import matplotlib.pyplot as plt 4 x = np.array([1,2,3,4,5,6,7,8]) 5 y = np.array([3,5,7,6,2,6,10,15]) 6 plt.plot(x,y,'r')# 折线 1 x 2 y 3 color 7 plt.plot(x,y,'g',lw=10)# 4 line w 8 # 折线 饼状 柱状 9 x = np.