Python读取文件抽取随机行后如何格式化输出为预期的整洁展示格式
问题根源
你原先的代码存在一处核心逻辑错误:调用random.sample()返回的本来就是包含3行内容的列表,但你额外用f-string把它强制转成了字符串类型,所以后续不管用拆包还是join操作,处理的都是类似"['a\n', 'b\n', 'c\n']"这种整段字符串,自然得不到想要的效果。
修正后完整代码
import random with open("/Users/will/Dropbox/zettelkasten/Super Slogans 202012281549.md") as file_in: lines = [] for line in file_in: # 替换不间断空格的同时去掉行尾自带的换行符 processed_line = line.replace(u'\xa0', u' ').rstrip('\n') # 跳过空行避免抽到空白内容 if processed_line: lines.append(processed_line) # 直接存储列表,不要额外转成字符串 sample = random.sample(lines, 3) # 用换行符拼接后打印即可 print('\n'.join(sample))
核心修改点
- 删掉了包裹
random.sample()的多余f-string,保留其原生列表类型 - 读取每行时直接用
rstrip('\n')去掉行尾默认带的换行符,避免输出多余空行 - 新增了空行过滤逻辑,不会抽到文件里的空白行
运行上述代码即可得到你要求的格式化输出效果。
内容的提问来源于stack exchange,提问作者Will Simpson
相关产品推荐
相关产品推荐

