Python3技术问题:打印TXT文件1至N行与倒序歌曲列表正序处理
嘿,我来帮你搞定这两个Python文件处理的问题!
问题1:Python3中打印TXT文件第1行到第N行的内容
这里给你两种实用方法,根据文件大小选就行:
方法1:一次性读取(适合小文件)
如果你的文件不大,直接把所有行读到列表里,再切片取前N行,代码写起来超简单:
n = 5 # 把这里换成你需要的具体行数 with open('your_file.txt', 'r', encoding='utf-8') as f: lines = f.readlines() # 注意列表索引从0开始,所以取0到n-1的元素就是第1到第N行 for line in lines[:n]: print(line.strip()) # strip()用来去掉每行末尾的换行符,避免多空一行
方法2:逐行读取(适合大文件)
要是文件特别大(比如几个G的日志文件),一次性读会占满内存,那就逐行读,读到第N行就停:
n = 5 count = 0 with open('your_file.txt', 'r', encoding='utf-8') as f: for line in f: count += 1 print(line.strip()) if count == n: break # 到第N行就退出循环,不用继续读了
问题2:处理倒序存储的歌曲列表文件
需求很明确:读取songlist.txt(里面是倒序的歌曲列表),转成正确顺序,还要统计还需演唱的歌曲数量。考虑到示例里有重复歌曲,我把“总数量”和“去重后的独特数量”都给你写上了:
# 先读取文件,处理掉空行和换行符 with open('songlist.txt', 'r', encoding='utf-8') as f: # 遍历每行,去掉末尾的换行和空白,同时跳过空行 song_lines = [line.strip() for line in f if line.strip()] # 反转列表得到正确演唱顺序(因为原文件是倒序存的) correct_order = song_lines[::-1] # 统计数量:两种情况都给你 total_songs = len(correct_order) # 包含重复歌曲的总数量 unique_songs = len(set(correct_order)) # 去重后的独特歌曲数量 # 输出结果 print(f"还需演唱的歌曲总数量(含重复):{total_songs}") print(f"还需演唱的独特歌曲数量:{unique_songs}") print("\n正确的演唱顺序:") for idx, song in enumerate(correct_order, start=1): print(f"{idx}. {song}")
解释下:song_lines[::-1]是Python里反转列表的快捷写法,一下子就能把倒序的列表转成正序。统计去重用了集合,因为集合里不会有重复元素,转成集合再取长度就是独特歌曲的数量啦。
内容的提问来源于stack exchange,提问作者dumb_guy
相关产品推荐
相关产品推荐

