如何使用Python以.txt到.csv格式列出字符串?

如何使用Python以.txt到.csv格式列出字符串?,python,Python,在my.txt文件中有一组字符串: Setting Process Priority to NORMAL: Success 1 Successfully setting POL Flag to 0 VSGetVirusPatternInformation is invoked Reading virus pattern from lpt$vpn.527 (2018/09/25) (1452700) LPT$VPN Pattern Version : 1452700 Successful

在my.txt文件中有一组字符串:

Setting Process Priority to NORMAL: Success 1

Successfully setting POL Flag to 0
VSGetVirusPatternInformation is invoked
Reading virus pattern from lpt$vpn.527 (2018/09/25) (1452700)



LPT$VPN Pattern Version : 1452700

Successfully setting POL Flag to 0
Scanning partition sector of disk C:VSGetDiskData() not defined.

Scanning boot sector of disk C:VSGetDiskData() not defined.




Scanning samples_extracted\07831df482f1a34310fc4f5a092c333eeaff4380-> 
(MS Office 1-0)->Found Virus [TROJ_CVE201711882.UHAOBHAO]
我正在尝试修剪这些sha1和描述,然后将其放入一个.csv文件中,如下所示:


如何使用if(在“\”之后和“->”之前)获取这些字符串,然后将其放入csv中,这非常困难,我想不出更简单的方法。

这是一个工作人员,但它没有将sha1列为csv。以下是给我的输出:发现病毒[TROJ_CVE201711882.UHAOBHAO](Microsoft RTF 6008-0)您的输入文件与您列出的输入示例不同吗?我能够用您提供的示例输入测试这一点,它对我来说运行良好。以下是输出CSV文件在我这边的样子:“38D8244B00BB966258BD6EF9562850ACCC907D0”,“ASCII文本18-0”,“3bff2501c649f8ee8cb69d2601a43958b7f59644”,“Microsoft RTF 6008-0”也请注意,我刚刚编辑了我的答案,并对其进行了更改,因此它将删除所有内容,包括反斜杠(\)在字符串中,没有使用固定的前缀值,而是找到了病毒[TROJ_CVE201711882.UHAOBHAO],它修剪了第一部分,但第二部分没有,它仍然输出txt的全部内容,但它确实将sha1放在列中,我在示例输入文件中没有看到“发现病毒[TROJ_CVE201711882.UHAOBHAO]”。我看到你更新了你的问题。我很快会给你最新的答复
import csv

INPUTFILE = 'input.txt'
OUTPUTFILE = 'output.csv'
PREFIX = '\\'
DELIMITER = '->'

def read_text_file(inputfile):
    data = []
    with open(inputfile, 'r') as f:
        lines = f.readlines()

    for line in lines:
        line = line.rstrip('\n')
        if not line == '':
            line = line.split(PREFIX, 1)[-1]
            parts = line.split(DELIMITER)
            data.append(parts)

    return data

def write_csv_file(data, outputfile):
    with open(outputfile, 'wb') as csvfile:
        csvwriter = csv.writer(csvfile, delimiter=',', quotechar='"',
                                quoting=csv.QUOTE_ALL)
        for row in data:
            csvwriter.writerow(row)

def main():
    data = read_text_file(INPUTFILE)
    write_csv_file(data, OUTPUTFILE)

if __name__ == '__main__':
    main()