python - 需要帮助编辑文本文件;删除所选字符后的所有字符
问题描述
我得到了一个绝妙的主意,尝试使用 python 删除歌曲中歌词的某个部分。我想删除列之前的所有内容
例子:
女士:哦,如何让事情变得有趣...... ---> 哦,如何让事情变得有趣
娃娃女孩:哦,如何让事情变得有趣?--- >哦,如何让事情变得有趣?
娃娃男孩:哦。如何。让事情变得有趣。---> 哦。如何。让事情变得有趣。
经过 20 分钟的思考,这是我在意识到自己不知道自己在做什么之前的思考过程。因为它只是不工作
import codecs
with codecs.open("potato.txt", "r", encoding="utf-8") as lyrics:
readlines = lyrics.readlines()
separate = ':'
for lines in readlines:
if separate in readlines:
readlines = readlines.split(separate)[1]
with codecs.open("potato.txt", "w", encoding="utf-8") as lyrics:
lyrics.writelines(readlines)
解决方案
这应该适合你。请注意检查以确保一行中至少有一个分隔符:
import codecs
def transform(filename, encoding='UTF-8'):
with codecs.open(filename, encoding=encoding) as infile:
allLines = infile.readlines()
with codecs.open(filename, mode='w', encoding=encoding) as output:
for line in allLines:
parts = line.split(':')
if len(parts) == 1:
outline = parts[0]
elif len(parts) == 2:
outline = parts[1]
else:
outline = ':'.join(parts[1:])
output.write(outline)
transform('potato.txt')
推荐阅读
- javascript - 如何在leaflet.js中的点击事件上添加标记
- nginx - NGINX 的别名?
- reactjs - 发布数据 使用 'content-type': 'application/x-www-form-urlencoded' 和 'key': 'key' 发布数据
- python - 使用python检测鼠标是等待还是忙碌
- c++ - 调用 Win32 API 函数时未定义的引用
- python - sklearn.pipeline 中的 LeaveOneOutEncoder
- apache-spark - Spark 中使用和缓存的内存
- c# - TextMeshPro 无法在 Visual Studio 中解析为类
- c# - 如何回发一组复杂的单选按钮
- bamboo - Bamboo 管道的秘密