如何将函数中的值设置为CSV?

2024-09-29 21:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个新的程序员,试图建立一个twitter机器人,根据我创建的一些数据自动推特。现在,我想把我抓到的tweet设置为“tweeted”。我想打开CSV并将字段“tweeted”设置为“1”

我读了不少,但我有一个困难的时间与例子,因为他们不属于我的代码(再次抱歉,我是新来的。)

这就是我到目前为止已经在推特上发表的观点

def markastweeted():
    """Sets tweeted field to 1"""
    with open("data.csv", "r+") as csvDataFile:
        quotesdb = list(csv.DictReader(csvDataFile))
        for line in quotesdb:

            #Field names in CSV
            #----- id_serial
            #----- id_season
            #----- quote
            #----- file_path
            #----- id_group
            #----- trigger_time
            #----- tweeted

            #----- check "tweeted" field for data -- if true go to next row
            if line['tweeted'] == ("1"):
                pass

            if line['tweeted'] == (""):

在我的另一个返回tweet的函数中,我有:

if line['tweeted'] == (""):
     return line['tweet']

但在这里我想要这样的东西:

if line['tweeted'] == (""):
     set line['tweeted'] with "1"

感谢您的帮助!谢谢


Tags: csvtoinidfieldfordataif
1条回答
网友
1楼 · 发布于 2024-09-29 21:25:02

要修改csv文件,需要在内存中读取它们,就像在csv.DictReader(csvDataFile)中那样将信息存储在变量中,修改变量,然后定义另一个编写器,如csv.DictWriter(csvDataFile, headers),然后使用writerows(rows)写回文件

您的代码应该如下所示:

def markastweeted():
    """Sets tweeted field to 1"""
    with open("data.csv", "r", newline='') as csvDataFile:
        r = csv.DictReader(csvDataFile)
        fieldnames = r.fieldnames
        quotesdb = [row for row in r]

        for line in quotesdb:

            #Field names in CSV
            #  - id_serial
            #  - id_season
            #  - quote
            #  - file_path
            #  - id_group
            #  - trigger_time
            #  - tweeted

            #  - check "tweeted" field for data   if true go to next row
            if not line['tweeted']:
                line['tweeted'] == 1

    # writing back to file **(OVERWRITE)**
    with open("data.csv", "w", newline='') as fout:
        writer = csv.DictWriter(fout, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(quotesdb)

相关问题 更多 >

    热门问题