有时我们会遇到需要按行读取文本的情况,我们要读取txt文件获得数据,并把数据的按行或者按列存放到另一个txt文件中,从而生成特征和类别标签。下面使用Python3实现从txt文件中读取指定行并按列写入的方法 。
首先,创建一个txt文件用于测试案例:
1、读取任意指定行,并按列写入
这里指定读取第一行和第二行的数据,并将数据间隔两个空格或者其他符号后,按列输出。关于读取方式有很多种,可自行修改。
python逐行读取文件内容的三种方法_zhengxiangwen的博客-CSDN博客_python逐行读取txt
#读取指定行数,并按列输出
def file_read(line_target):#传入的参数为要获取文本的目标行数
list=[] # 存档列表
with open ('1.txt','r',encoding='utf-8') as file:
for num, line in enumerate(file): # num从0开始循环,所以对应的行数要减一
line = line.strip('\n') # 删除换行符
if num == line_target - 1: # 当行数循环到等于传入的参数值减一时,返回这一行的文本内容并跳出循环
list.append(line)
return list
break
print(file_read(1),file_read(2))#打印查看输出的内容
with open("text.txt","w",encoding='utf-8') as file:
for i,j in zip(file_read(1)[0].split(),file_read(2)[0].split()):#此处修改为你自己的行数file_read(1),或者添加行
file.write(str(i)+' '+str(j)+'\n')
file.close()
输出结果:
['35 57 67 65 58 4674 36 8 75 8'] ['34 645 32 67 45 675 78 86 967 076']
2、读取所有行,并按列写入
根据读取方式的不同,另一个版本是:这里指定读取第一、第二和第三行的数据,并将数据间隔两个空格后按列输出。
#读取所有的行数,并按列输出
SaveList = [] # 存档列表
# 读取文本内容到列表
with open("1.txt", "r", encoding='utf-8') as file:
for line in file:
line = line.strip('\n') # 删除换行符
SaveList.append(line)
file.close()
print(SaveList)
#写入存档到文件
with open("data.txt","w",encoding='utf-8') as file:
for i,j,z in zip(SaveList[0].split(), SaveList[1].split(), SaveList[2].split()):#此处修改为你自己的行数SaveList[1],或者添加行
file.write(str(i)+' '+str(j)+' '+str(z)+'\n')
file.close()
输出结果:
['35 57 67 65 58 4674 36 8 75 8', '34 645 32 67 45 675 78 86 967 076', '65 776 55 33 67 233 77 33 22 99']