如何将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)
不知道你这个问题是否已经解决, 如果还没有解决的话: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!')
import numpy as np
data = np.loadtxt(fname='data.txt', dtype='str', delimiter='\t', encoding='utf-8', skiprows=1)
print('data=',data)
这个是我老师发的答案关于解决这个问题的代码