将终端输出到带有python中单独列的csv

时间:2019-02-26 11:13:35

标签: python loops csv for-loop export-to-csv

我的代码如下:

import csv
with open('Remarks_Drug.csv', newline='', encoding ='utf-8') as myFile:
    reader = csv.reader(myFile)
    for row in reader:
        product = row[0].lower()
        filename = row[1]
        product_patterns = ', '.join([i.split("+")[0].strip() for i in product.split(",")])
        print(product_patterns, filename)

其输出如下:(其中覆膜标签应为一列,文件名应为另一列)

film-coated tablet RECD outcome AUBAGIO IAIN-21 AoR.txt
solution for injection 093 Acceptance NO Safety profil.txt

我想将此输出到一个csv文件,其中一列为product_patterns,另一列为filename。我编写了以下代码,但仅最后一行被附加。谁能帮我在这里循环播放。我写的代码是:

with open ('drug_output.csv', 'a') as csvfile:
    fieldnames = ['product_patterns', 'filename']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writerow({'product_patterns':product_patterns, 'filename':filename})

enter image description here

1 个答案:

答案 0 :(得分:0)

根据您可以使用的环境,使用更专用的程序来解决您的问题可能更实际。

在您的情况下,特别是pandas package似乎很有用。 然后,您可以使用以下命令加载csv:

import pandas as pd
df=pd.read_csv(file_path)

进行必要的操作后,您可以使用再次保存

df.to_csv(file_path)

这将为您节省很多在逐行解析时通常会出现的问题,并且还应该稍微提高性能。如果您需要进行一些数据操作,无论如何,Pandas是一个非常好的软件包。