python - 如何从文本写入 csv?

标签 python regex text concatenation

我正在尝试使用 Python 从存档中提取一些信息。该文件的一部分是:

1. [HG-U133_Plus_2] Affymetrix Human Genome U133 Plus 2.0 Array
(Submitter supplied) Affymetrix submissions are replicated on the GeneChip Human Genome U133 Plus 2.0 Array. more...
Organism:   Homo sapiens
527 DataSets 4123 Series 54 Related Platforms 115874 Samples
FTP download: GEO ftp://ftp.ncbi.nlm.nih.gov/geo/platforms/GPLnnn/GPL570/
Platform    Accession: GPL570   ID: 100000570

2. [Mouse430_2] Affymetrix Mouse Genome 430 2.0 Array
(Submitter supplied) Affymetrix submissions are typically Array. more...
Organism:   Mus musculus
517 DataSets 3529 Series 36 Related Platforms 46528 Samples
FTP download: GEO ftp://ftp.ncbi.nlm.nih.gov/geo/platforms/GPL1nnn/GPL1261/
Platform    Accession: GPL1261  ID: 100001261


import re
import sys
import itertools

stdout = open("results.txt", "w")
pattern = re.compile(r'^\d+[.]\s')
pattern2 = re.compile(r'Organism:')
pattern3 = re.compile(r'FTP download:')
pattern4 = re.compile(r'ID: ')

listOrg = []

def group_separator(line):
    return line=='ID: '

with open('Microarray/PlatformsMicroarray.txt') as f:
    for key,group in itertools.groupby(f,group_separator):
        # print(key,list(group))  # uncomment to see what itertools.groupby does.
        if not key:
            data={}
            for item in group:
                for line in f:
                   if pattern.search(line):
                        listOrg.append(line)
                   if pattern2.search(line):
                        #field,value=line.split(':')
                        listOrg.append(line)
                   if pattern3.search(line):
                        listOrg.append(line)
                   if pattern4.search(line):
                        listOrg.append(line)

for item in listOrg:
  stdout.write("%s" % item)

stdout.close()

如何连接信息以便以 .csv 格式写入存档?

最佳答案

csv 模块是您选择的武器。

with open("path/to/out.csv", "wb") as out:
    writer = csv.writer(out)
    for line in whatever_your_input_is:
        writer.writerow(line)

在这种情况下,看起来 listOrg 是您解析的输入,所以您会这样做

...
    for line in listOrg:
        writer.writerow(line)

关于python - 如何从文本写入 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445692/

相关文章:

python pip 将库从 ~/.local 迁移到/usr/local/lib

java - 我如何匹配字符串?

java - 将文本文件写入数组,然后在 Java 中返回它

css - 文本自动调整大小,无需媒体查询(响应式设计)

Python 异常未捕获

python - Pandas read_excel 返回对象类型的列

python - 更改标签之间的文本 - shell 脚本

Python 正则表达式在与 re.findall 一起使用时返回匹配的一部分

java - 从字符串java中拆分文本

python - 通过继承获取派生类的模块文件路径