python怎样读取txt文件的数据内容

python怎样读取txt文件的数据内容,第1张

我们使用python的时候经常需要读取txt文件中的内容,那么该如何读取呢?下面我给大家分享一下。

01

首先我们新建一个txt文件,在里面写入一些内容,如下图所示

02

接下来打开运行界面,输入CMD命令,如下图所示

03

然后进入CMD界面以后我们输入python命令进入python环境,如下图所示

04

最后我们通过python中的open方法打开txt文件,然后通过read方法读取文件内容,如下图所示

1 文件读取全文本 *** 作

在一定场景下我们需要把文本全部内容读取出来,进行处理。python提供三种函数读取文件,分别是read readline readlines,

read():读取文件的全部内容,加上参数可以指定读取的字符。

readline():读取文件的一行。

readlines():读取文件的所有行到内存中。

不同场景下我们可以选择不同函数对文件进行读取。

1.1 方法一

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r")

txt=file.read()

# 全文本的处理

file.close()

使用read函数将文件中的内容全部读取,放在字符串变量txt中。这样 *** 作适合于文本较小,处理简单的情况,当文件较大时,这种方式处理时不合适的。一次性读取较大的文件到内存中,会耗费较多的时间和资源。这时候分批处理效果更好。

1.2 方法二

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r")

txt= file.read(4)

# 文本的处理while txt != ""txt= file.read(4)

# 批量文本处理

file.close()

这种方法适合于分批处理文本信息,每次批量读入,批量处理,不会对内存造成较大的压力。

1.3 方法三

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r")for line infile.readlines():

# 处理每一行数据

file.close()

这种处理方式适合处理以行为分割特点的文本,并且文本较小,因为这种处理方式需要一次性把文件所有内容读取到内存中。

1.4 方法四

file_name = input("请输入你要打开的文件的完整路径及名称")

file= open(file_name, "r") # 这里的file时文件句柄for line infile:

# 处理每一行数据

file.close()

这种方式和方法三中的区别是分行读入,逐行处理,不会一次性把文件所有内容都读入到内存中,对一些大文件的处理是很有效的。

2 文件写入文本 *** 作

文件写入有两种写入函数和一种辅助支持。

write():向文件中写入一个字符或者字节流

writelines():将一个元素全为字符串的列表写入到文件中 需要注意的是,writelines写入列表元素的时候会把列表元素的内容拼接到一起写入,不会有换行和空格 。

seek(): 辅助写入函数offset偏移量参数代表含义如下

0 - 文件开头

1 - 当前位置

2 - 文件结尾

2.1 方法一

file_name = input("output.txt", "w+")

text= "hello world!"file_name.write(text)

file.close()

2.2 方法二

file_name = input("output.txt", "w+")

list= ["中午","早上","晚上"]

file_name.writelines(list)for line infile:

# 读取写入的数据,这时候发现是没有任何内容的

file.close()

我们增加一行代码就可以读取到写入的文件内容,利用seek()函数调整写 *** 作指针的位置,可以实现写 *** 作之后的正常读取。

file_name = input("output.txt", "w+")

list= ["中午","早上","晚上"]

file_name.readlines(list)

file_name.seek(0) # 调整写的指针到文件的开始位置for line infile:

# 读取写入的数据,这时候会读出一行写入的数据。

file.close()

f = open("data.txt","r")   #设置文件对象

f.close() #关闭文件

为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代

with open('data.txt',"r") as f:    #设置文件对象

 str = f.read()()    #可以是随便对文件的 *** 作

f = open("data.txt","r")   #设置文件对象

str = f.read()     #将txt文件的所有内容读入到字符串str中

f.close()   #将文件关闭

f = open("data.txt","r")   #设置文件对象

line = f.readline()

line = line[:-1]

while line:             #直到读取完文件

     line = f.readline()  #读取一行文件,包括换行符

     line = line[:-1]     #去掉换行符,也可以不去

f.close() #关闭文件

data = []

for line in open("data.txt","r"): #设置文件对象并读取每一行文件

     data.append(line)               #将每一行文件加入到list中

 f = open("data.txt","r")   #设置文件对象

 data = f.readlines()  #直接将文件中按行读到list里,效果与方法2一样

 f.close()             #关闭文件

可以使用pandas的.read_csv,读取文件的时候可以给每一列起名字,通过列名来调取相应列的数据。

import pandas as pd

data = pd.read_csv(" OSDO1012.txt",sep=',',header=None, names=['lat','lon','time','z']

使用data.lat就可以读取名为lat这一列的数据

 data = np.loadtxt("data.txt",skiprows = 1)   #将文件中数据加载到data数组里,并且跳过第一行

 with open('data.txt','w') as f:    #设置文件对象

    f.write(str)                 #将字符串写入文件中

data = ['a','b','c']

单层列表写入文件

with open("data.txt","w") as f:

    f.writelines(data)

每一项用空格隔开,一个列表是一行写入文件

data =[ ['a','b','c'],['a','b','c'],['a','b','c']]

with open("data.txt","w") as f:                      #设置文件对象

     for i in data:                                    #对于双层列表中的数据

      i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n'  #将其中每一个列表规范化成字符串

     f.write(i)                      #写入文件

直接将每一项都写入文件

data =[ ['a','b','c'],['a','b','c'],['a','b','c']]

with open("data.txt","w") as f:                    #设置文件对象

     for i in data:                                      #对于双层列表中的数据

          f.writelines(i)                            #写入文件

np.savetxt("data.txt",data)     #将数组中数据写入到data.txt文件

np.save("data.txt",data)        #将数组中数据写入到data.txt文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12003055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存