2024-04-20 00:35:39 发布
网友
我有一个文件,每行像
名称1名称2名称3
我可以逐行阅读,拆分每一行,逐行处理并输出处理后的数据。你知道吗
但是,我想读入整个文件,按中间列排序,然后以输入的格式输出整个排序的文件。你知道吗
我的第一次尝试是在读入时拆分每一行,形成一个元组列表,然后使用key=进行排序,然后重新连接每个元组并逐行输出。你知道吗
有没有更像Python的方法?你知道吗
这样做应该:
with open('datafile') as fin: lines = list(fin) lines.sort(key=lambda line: line.split()[1]) with open('outfile','w') as fout: fout.writelines(lines)
注意事项:
我的分类键有点难看。但是,这里的优点是它保留了与输入文件中的行完全相同的行。如果我们拆分行,然后进行排序,代码可能会更漂亮一些,但是我们需要在输出时正确地连接拆分的行(另外,可能会丢失空白运行)
outfile可以是与datafile相同的文件名,以使更改有效地“就位”
如果您需要支持字段的引号(field1 "field 2" field3),那么您需要查看csv模块。
field1 "field 2" field3
csv
这样做应该:
注意事项:
我的分类键有点难看。但是,这里的优点是它保留了与输入文件中的行完全相同的行。如果我们拆分行,然后进行排序,代码可能会更漂亮一些,但是我们需要在输出时正确地连接拆分的行(另外,可能会丢失空白运行)
outfile可以是与datafile相同的文件名,以使更改有效地“就位”
如果您需要支持字段的引号(
field1 "field 2" field3
),那么您需要查看csv
模块。相关问题 更多 >
编程相关推荐