python文件排序做法_python快速排序最简单写法

python文件排序做法_python快速排序最简单写法在 Python 中 对文件内容进行排序通常涉及以下步骤 1 打开文件并读取内容 2 将文件内容分割成行 如果需要 3 对行进行排序 4 将排序后的行写入新文件或覆盖原文件 python 打开文件并读取内容 with open input file txt r as file lines file readlines 对行进行排序 lines

在Python中,对文件内容进行排序通常涉及以下步骤:

1. 打开文件并读取内容。

2. 将文件内容分割成行(如果需要)。

3. 对行进行排序。

4. 将排序后的行写入新文件或覆盖原文件。

 打开文件并读取内容 with open('input_file.txt', 'r') as file: lines = file.readlines() 对行进行排序 lines.sort() 将排序后的行写入新文件 with open('sorted_file.txt', 'w') as file: file.writelines(lines) 

如果你需要按照每行的字符长度进行排序,可以使用`key`参数指定排序依据:

 按字符长度对文件内容进行排序 with open('test.log', 'r') as file: lines = file.readlines() 使用lambda表达式指定排序依据为行长度 lines.sort(key=lambda x: len(x)) 将排序后的行写入新文件 with open('sorted_by_length.log', 'w') as file: file.writelines(lines) 

对于更复杂的排序需求,比如统计特定目录下所有txt文件中每个domain出现的次数并按次数排序,可以使用以下代码:

 import os import re 将给定目录下所有的txt文件整合到一个list中 def merge_txt(path_list): file_list = [] for path in path_list: for (dirpath, dirnames, filenames) in os.walk(path): for filename in filenames: if filename.endswith('.txt'): file_list.append(os.path.join(dirpath, filename)) return file_list 将文件列表中每个文件里面的url合并到一个list def merge_to_domain_list(file_list): all_domain_list = [] domain_pat = r'https?://[^\s]+' for file in file_list: with open(file, 'r') as f: for line in f: domains = re.findall(domain_pat, line) all_domain_list.extend(domains) return all_domain_list 统计每个domain出现的次数 domain_counts = {} for file in merge_txt(['data_naver', 'data_google']): for domain in merge_to_domain_list([file]): if domain in domain_counts: domain_counts[domain] += 1 else: domain_counts[domain] = 1 按照出现次数对domain进行排序 sorted_domains = sorted(domain_counts.items(), key=lambda x: x, reverse=True) 将排序结果写入文件 with open('sorted_domains.txt', 'w') as f: for domain, count in sorted_domains: f.write(f'{domain}: {count}\n') 

以上代码展示了如何读取多个目录下的txt文件,提取domain,统计它们出现的次数,并按次数降序排序,最后将结果写入文件。

编程小号
上一篇 2024-12-25 08:39
下一篇 2024-12-25 08:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/145140.html