有时我们会遇到需要按行读取文本的情况,我们要读取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']

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐