python txt文件处理

news/2024/11/30 18:49:07/

一、python 中打开文件,

python中读写txt文件,首先得打开文件,即使用open()函数,

lastpath1 = r'D:\apache-jmeter-4.0\bin\srcWaveId.txt'
file1 = open(lastpath,'r'')

可以使用不同的模式打开文件,如:r,r+,w,w+,a,a+,它们的区别如下:
在这里插入图片描述
注意:write()会创建文件

二、文件读取

python常用的读取文件函数有三种read()、readline()、readlines()*

(1)、read() 一次性读全部内容 一次性读取文本中全部的内容,以字符串的形式返回结果

path1=r'D:\Document\test.txt'
file1=open(path1,'r')
content1=file1.read()
print(content1)
file1.close()  #使用完毕后关闭文件

(2)、readline() 一行一行读取文件内容,调用几次读取几行,以字符串的形式返回结果

path2=r'D:\Document\test.txt'
file2=open(path1,'r')
content2=file2.readline() #读取第1行文件的内容
content2=file3.readline() #读取第2行文件的内容
print(content2)
print(content2)
file2.close() #文件打开,使用完毕后需要关闭

(3)、readlines()读取文本所有内容,并且以列表的形式返回结果

path3=r'D:\Document\test.txt'
file3=open(path3,'r')
content3=file3.readlines()
print(content3)
file3.close() #文件打开,使用完毕后需要关闭

返回结果:

['one\n', 'two\n', 'three\n', 'four\n', 'five']

因readlines()会读到换行符,所以一般配合for in使用去除换行符,循环遍历文件中所有行并输出

f = open("test.txt", "r")
for line in f.readlines():line = line.strip('\n')  #去掉列表中每一个元素的换行符print(line)f.close()

三、文件写入

常用函数:write()

1、文件中写入内容,首先需要打开文件

2.wirte()写入后默认不换行,如果想换行则需要加入换行符\n即可

path2 = r'D:\Document\test2.txt'
file2 = open(path2,'w+')
file2.write('aaa') #wirte()写入后默认不换行
file2.write('bbb\n') #加入换行符进行换行
b = 'ccc'
file2.write(b)

四、文件关闭

文件打开最后需要关闭,常用函数为close()。

还可以使用with open不需要写close()方法

#使用with执行完文件操作后自动关闭文件,不用再调用close(),as为重命名
with open(r'F:\jupyter notebook files\text files.txt','r') as f:   contents=f.read()print(contents)

五、文件删除

如需删除文件,必须导入 OS 模块,并运行其 os.remove() 函数;

为避免出现错误,可以在删除文件之前检查该文件是否存在:

import osif os.path.exists(r'D:\HK 711.txt'):  #判断文件是否存在os.remove(r'D:\HK 711.txt')  #删除文件
else:print("The file does not exist")

若删除文件目录,则使用os.rmdir() 方法,但是只能删除空文件夹

mport osos.rmdir(r'D:\a')

六、清空文件内容

使用file.truncate()方法清空文件内容

file1 = open(r'D:\1.txt','a+')  #注意清空文件内容需要写权限
file1.truncate(0)   #参数0表示从文件开头位置截断内容,也即清空,如果为2,表示文件清除后保留2个字符
file1.close()

七、读取文件行数

函数:len()

file6 = open(r'D:\Document\Workspace\SQLEdit\result.txt', 'r')
j = file6.readlines()
print(j)
print(len(j))

八、文件读写机制

如下代码,当执行完成后会发现,打印内容为空,也没有报错

file01 = open(r'D:\Document\Workspace\result.txt', 'w+')
file01.write('aaa')
content = file01.readlines()
print(content)

这是为什么呢?

文件读写机制:当一个文件被读或者写一次后,文件中类指针的东西指向的是整个文件的末尾,再次读时从末尾开始读的话肯定

是什么都读不到了。如何写完了接着读呢?加上f.seek(0)使得类指针的东西回到文件的开头然后从头开始读即可。

如下代码,加上seek()函数让光标回到首位,可以打印出内容。

file01 = open(r'D:\Document\Workspace\result.txt', 'w+')
file01.write('aaa')
file01.seek(0)  #文件1光标移到首位
content = file01.readlines()
print(content)

九、踩坑

1、每执行完一种增删改操作,需要重新open file

如下代码,当不重新打开文件f5,而直接在f4上truncate(0),没有实际效果

        with open(curdirpath + '/dest.txt', 'r') as f4:print('start')file4Content = f4.read()print(file4Content)print('end')self.textBrowser.setText(file4Content)with open(curdirpath + '/dest.txt', 'a+') as f5:f5.truncate(0)

2、程序执行后报错:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 217: illegal multibyte sequence

解决方案:加上编码方式encoding=‘UTF-8’

file1 = open(r'D:\HK 711.txt','r',encoding='utf-8')
line1 = file1.readline()
line2 = file1.readline()
print(line1)
print(line2)
file1.close()

http://www.ppmy.cn/news/655272.html

相关文章

vbs读取服务器上的txt文件,VBS读写txt文件常用方法

1、打开文件 使用opentextfile方法 set fs =createobject(“scripting.filesystemobject”) set ts=fs.opentextfile(“c:\1.txt”,1,true) 注意这里需要填入文件的完整路径,后面一个参数为访问模式 1为forreading 2为forwriting 8为appending 第三个参数指定如果指定文件不存…

java读取txt文件内容 乱码_java读取txt文件乱码解决方法

java读取txt文件,如果编码格式不匹配,就会出现乱码现象。所以读取txt文件的时候需要设置读取编码。txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。(推荐:java视频教程) java编码与txt编码对应:…

C语言读写txt文件

1.从txt文件中按指定格式 读出: int read_raw_hex_data(const char* path,int data_length ,int* a) {FILE* fpRead NULL;int ret 0;int i 0;fopen_s(&fpRead, path, "r");if (fpRead NULL){printf("Fail to read raw data file!");re…

matlab删掉txt文件中的数据,matlab中读取txt数据文件(txt文本文档)

根据txt文档不同种类介绍不同的读取数据方法 一、纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为 17.901 -1.1111 33.045 17.891 -1.1286 33.045 17.884 -1.1345 33.045 可以在command window中输入load test.txt ,…

WKWebView加载txt文档乱码

当使用WKWebView预览ppt、Excel、word、txt等文件时,关于txt文档乱码情况,不用担心,对链接对应的文档进行UTF8编码、GBK和GB1830编码就OK了, SWIFT 5版本: func configData() {guard let url URL.init(string: urlSt…

什么是robots.txt文件

一、什么是robots文件 Robots.txt文件是网站跟爬虫间的协议,对于专业SEO并不陌生,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时&…

将文本保存为TXT文档

首先对manifest注册SD卡读写权限 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 AndroidManifest.xml <?xml version "1.0" encoding "utf-8" ?> <manifest xmlns:android" package "com.tes.textsd&q…

Python 基本数据类型(六)

文章目录 每日一句正能量Tuple&#xff08;元组&#xff09;结语 每日一句正能量 一生要做的几件事情一管理好自己的身体。二管理好自己的情绪&#xff0c;正面思维。三服务好自己的家庭&#xff0c;让家人生活幸福。四做好本职工作&#xff0c;做一两件特别完美&#xff0c;石…