环境:Python3.7,pycharm
问题:Python对文本进行读取,我想在文本的每一个段首和段尾各添加一个符号,但是尝试了更多方法均报错
请问有什么方式能够完成呢
Python文本改写报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 可以使用 Python 的文件读写操作来实现。具体步骤如下:
打开文本文件,将文件内容读取到一个字符串中。
with open('file.txt', 'r') as f: content = f.read()
这里使用了 Python 的
with
语句,可以自动关闭文件,避免文件句柄泄漏等问题。对字符串进行处理,寻找每一段的起始和结束位置,并在对应位置添加符号。
symbol1 = '<' # 段首符号 symbol2 = '>' # 段尾符号 new_content = '' # 处理后的字符串 last_end = 0 # 上一段的结束位置 for match in re.finditer('\n\n+', content): start, end = match.span() new_content += content[last_end:start].strip() + symbol2 + '\n\n' + symbol1 last_end = end new_content += content[last_end:].strip() + symbol2
具体来说,这里使用正则表达式
'\n\n+'
来匹配段落的分隔符,然后处理每个匹配段落的起始和结束位置,最后在每一段的起始和结束位置添加对应的符号。将处理后的字符串写入新的文本文件。
with open('new_file.txt', 'w') as f: f.write(new_content)
完整的代码示例如下:
import re symbol1 = '<' # 段首符号 symbol2 = '>' # 段尾符号 with open('file.txt', 'r') as f: content = f.read() new_content = '' last_end = 0 for match in re.finditer('\n\n+', content): start, end = match.span() new_content += content[last_end:start].strip() + symbol2 + '\n\n' + symbol1 last_end = end new_content += content[last_end:].strip() + symbol2 with open('new_file.txt', 'w') as f: f.write(new_content)
注意,这里的代码仅处理以两个以上换行符作为段落分隔符的文本,不适用于其他形式的文本格式。如果需要处理其他格式的文本,可以根据实际情况调整正则表达式和处理逻辑。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度