首页 > 解决方案 > 需要帮助编辑文本文件;删除所选字符后的所有字符

问题描述

我得到了一个绝妙的主意,尝试使用 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)

标签: python

解决方案


这应该适合你。请注意检查以确保一行中至少有一个分隔符:

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')

推荐阅读