Python 3.x 读取文本文件的每一行,删除特定字符串前的所有字符,然后在Python中另存为新文件

Python 3.x 读取文本文件的每一行,删除特定字符串前的所有字符,然后在Python中另存为新文件,python-3.x,Python 3.x,我有几个文本消息记录文档,需要删除它们的用户名和时间戳 例如: 06/01/2021, 13:43 - Blue Banana: Blah blah 06/01/2021, 13:43 - Red Apple: Blah blah blah 06/01/2021, 13:43 - Blue Banana: Blah blah blah blah 到 到目前为止,我得到的是打开命令提示符一秒钟,然后关闭它测试文档2'完全没有变化 oldfile = "C:\\Users\\User\

我有几个文本消息记录文档,需要删除它们的用户名和时间戳

例如:

06/01/2021, 13:43 - Blue Banana: Blah blah 
06/01/2021, 13:43 - Red Apple: Blah blah blah
06/01/2021, 13:43 - Blue Banana: Blah blah blah blah

到目前为止,我得到的是打开命令提示符一秒钟,然后关闭它测试文档2'完全没有变化

oldfile = "C:\\Users\\User\\Downloads\\Test Docu.txt"
newfile = "C:\\Users\\User\\Downloads\\Test Docu 2.txt"
newline = ""

with open(oldfile, 'r') as f:
    for line in f:
        if "Blue Banana: " in line:
            newline = line[line.find("Blue Banana: "):]
            newfile.write(newline)
        elif "Red Apple: " in line:
            newline = line[line.find("Red Apple: "):]
            newfile.write(newline)
您需要打开()新文件并写入该文件

您还应该为任何“用户名”使用通用解决方案


newfile
是一个字符串,因此
newfile.write(…)
不起作用。请尝试
open(newfile,'w')
?要解决命令提示符问题,请不要“双击”python脚本,使用实际的IDE运行代码,并查看write()不是str函数的错误
oldfile = "C:\\Users\\User\\Downloads\\Test Docu.txt"
newfile = "C:\\Users\\User\\Downloads\\Test Docu 2.txt"
newline = ""

with open(oldfile, 'r') as f:
    for line in f:
        if "Blue Banana: " in line:
            newline = line[line.find("Blue Banana: "):]
            newfile.write(newline)
        elif "Red Apple: " in line:
            newline = line[line.find("Red Apple: "):]
            newfile.write(newline)
with open(oldfile) as f, open(newfile, 'w') as out:
    for line in f:
        time, txt = line.split('-', 1) 
        out.write(txt.split(':',1)[1].strip() + '\n')