如何将TXT文件中内容转换为二维列表Python

如何将TXT文件中内容转换为二维列表Python,并且删除\n,\t,谢谢朋友们

with open('文件名.txt', 'r') as file:
    content = file.read()

lines = content.split('\n')

data = []
for line in lines:
    items = line.split('\t')
    row = [float(item) for item in items]
    # 将该行数据添加到二维列表中
    data.append(row)

for row in data:
    print(row)


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7797871
  • 你也可以参考下这篇文章:通过python实现txt中,字母概率的计算,以及信源熵的计算,并且输出
  • 除此之外, 这篇博客: 使用Python读取数据集的图片路径,划分训练集与验证集并保存到txt文件中中的 4. 随机静态划分训练集、验证集与测试集,并保存到txt文件中 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    def write_train_val_test_list(img_list, train_rate, val_rate,
                                  train_save_path, val_save_path, test_save_path):
        '''
        随机划分训练集与验证集,并将训练集和验证集的图片路径和对应的标签存入txt文件中
        本方法因使用random.seed(0)语句,所以本方法是静态划分数据集,若想实现动态划分,可注释掉random.seed(0)语句
    
        :param img_list:            保存图像路径的列表
        :param train_rate:          训练集数量的比率
        :param train_save_path:     训练图像保存路径
        :param val_save_path:       验证集图像保存路径
        :return:
        '''
        train_index = len(img_list) * train_rate    # 以train_index为界限,img_list[0, train_index)为训练集
        val_index = len(img_list) * (train_rate + val_rate)     # 索引在[train_index, val_index)之间的为验证集,其余的为测试集
    
        # 列表随机打乱顺序,放入种子数,保证随机固定,使结果可复现
        random.seed(0)
        random.shuffle(img_list)
    
        # 划分训练集和验证集,并写入txt文件
        # 判断txt文件是否已经存在,若存在则不执行写入操作,需手动删除
        if os.path.exists(train_save_path):
            print(f'{train_save_path} already exists! Please delete it first.')
        if os.path.exists(val_save_path):
            print(f'{val_save_path} already exists! Please delete it first.')
        if os.path.exists(test_save_path):
            print(f'{test_save_path} already exists! Please delete it first.')
    
        if not os.path.exists(train_save_path) and not os.path.exists(val_save_path) and not os.path.exists(test_save_path):
            print('Splitting datasets...')
            for i in range(len(img_list)):
                # 写入训练集
                if i < train_index:
                    with open(os.path.join(train_save_path), "a+", encoding="utf-8", errors="ignore") as f:
                        if i < train_index - 1:
                            f.write(img_list[i] + '\n')
                        else:
                            f.write(img_list[i])
                # 写入验证集
                elif i >= train_index and i < val_index:
                    with open(os.path.join(val_save_path), 'a+', encoding='utf-8', errors='ignore') as f:
                        if i < val_index - 1:
                            f.write(img_list[i] + '\n')
                        else:
                            f.write(img_list[i])
                # 写入测试集
                else:
                    with open(os.path.join(test_save_path), 'a+', encoding='utf-8', errors='ignore') as f:
                        if i < len(img_list) - 1:
                            f.write(img_list[i] + '\n')
                        else:
                            f.write(img_list[i])
    
            print(f'Train datasets was saved: {train_save_path}')
            print(f'Val datasets was saved: {val_save_path}')
            print(f'Test datasets was saved: {test_save_path}')
            print('Splitting datasets Finished!')
  • 您还可以看一下 赵帅老师的Python爬虫基础&商业案例实战课程中的 批量生成舆情报告准备知识点:自动生成txt文件小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

import numpy as np
data = np.loadtxt(fname='data.txt', dtype='str', delimiter='\t', encoding='utf-8', skiprows=1)
print('data=',data)

这个是我老师发的答案关于解决这个问题的代码