python读取txt数据

Posted 啥也不是的py人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python读取txt数据相关的知识,希望对你有一定的参考价值。

目录

1、操作步骤

路径问题 

函数说明

.3 数据处理

.4 python分行读取带字符串的数字


1、操作步骤


(1)打开文件读取整个文件

函数open返回一个表示文件的对象,对象存储在infile中。关键字with在不需要访问文件时将其自动关闭。读取出的内容以字符串形式保存在data1/data2里

(2)第一种:读取所有行 infile.readlines()

(3)第二种:每行分开读取 for循环 line.strip("\\n").split()

(4)第三种:每个字符分开读取 for循环-for循环

(5)读取文本文件时,python将其中的所有文本都解读为字符串str。如果读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转化为整数。或使用float()将其转换为浮点数。

2、代码实现
 

def read_txt(inputpath, outputpath):
    with open(outputpath, 'w', encoding='utf-8') as file:
        with open(inputpath, 'r', encoding='utf-8') as infile:
            # 第一种:读取所有行
            #data1 = infile.readlines()
            #print(data1)
            # 输出:['1 2 3 4 5\\n', '6 7 8 9 10']
 
            # 第二种:每行分开读取
            data2 = []
            for line in infile:
                data_line = line.strip("\\n").split()  # 去除首尾换行符,并按空格划分
                print(data_line)
                data2.append([int(i) for i in data_line])
            print(data2)
            # 输出:[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
 
            # 第三种:每个字符分开读取
            data = data2
            for i in range(len(data2)):
                for j in range(len(data2[i])):
                    data[i][j] = str(data2[i][j])
            print(data)
            # 输出:[['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10']]
 
            # 写入方法
            for line in data2:
                # data = '' + '\\t'.join(str(i) for i in line) + '\\n'  # 用\\t隔开
                data = '' + ' '.join(str(i) for i in line) + '\\n'  # 用空格隔开
                file.write(data)
 
 
if __name__ == "__main__":
    input_path = '1.txt'
    output_path = '2.txt'
    read_txt(input_path, output_path)

如果有报错

改为绝对路径即可注意符号是 /  

 

路径问题 

' '是相对调用(在当前目录寻找文件名) 

" "是绝对调用,要写入绝对路径

函数说明

spilt()函数实际上就是读取到什么就按照那个作为下一个分割的信号

strip()用来除掉首尾需要的字符

 

.3 数据处理

比如说txt里有,

可以直接用记事本打开用空格替换所有,即可

然后使用.spilt即可

.4 python分行读取带字符串的数字

读取以下的txt

 代码:

'''把发布的消息转换为角度这样可以直接copy进列表'''
import re
file_path='/home/pxing/codes/realsense_ws/src/realsense-ros/scripts/Assembling/joint.txt'
with open(file_path, 'r') as f:
    list=[]
    lines=f.readlines()
    for line in lines:
        line=re.findall(r"\\d+\\.?\\d*",line)
        a=float(line[0])
        list.append(a)
#print(list)
for i in range(int((len(list)+1)/6)):
    #print(i)
    print(list[6*i:6*i+6])

效果:

 

以上是关于python读取txt数据的主要内容,如果未能解决你的问题,请参考以下文章

python 读取txt,将每行存为list?

python 读取文件转换为列表

如何用python读取txt内不规则数据,并保存?

python 读取文档 并创建任意多的list

python怎么读取csv文件

python 如何将列表写入文件