有没有办法将 csv 保存为新的 csv 而不会覆盖旧的?

Is there a way to save a csv as a new csv without overwriting the old one?

我正在抓取 subreddit 的评论,并想使用 pandas 将它们保存在 csv 文件中。我可以将所有 post 中的评论保存到一个 csv 文件中。但是,我想将每个 post 的评论保存在自己的 csv 中。使用for循环,它只是简单地覆盖了之前的csv。

是否有使用新名称保存 csv 或不覆盖的功能?我在 python 中使用 pandas。 下面是我的方法。

  #Retrieve Comments
  def comments(self,posts,reddit):

    '''Method scrapes all first level comments, then all second level comments, etc'''

    for id in posts.id:
      all_comments = []
      all_comments.clear() #just to be sure
      sub = reddit.submission(id=id)
      sub.comments.replace_more(limit=0)

      for comment in sub.comments.list():
        all_comments.append(comment.body)

      all_comments = pd.DataFrame(all_comments,columns=['Comments'])

      #*****Path to Store CSV*****
      all_comments.to_csv(r'C:\Users\osama\Desktop\.csv')

    return
for index, id in enumerate(posts.id):
    # ...
    all_comments.to_csv(rf'C:\Users\osama\Desktop\{index}.csv')

它将文件保存为0.csv、1.csv、2.csv等。

或者:

for post in posts:
    id = post.id
    # ...
    all_comments.to_csv(rf'C:\Users\osama\Desktop\{post.title}.csv')

我认为第二个选项应该与 praw 一起使用(我可以看到你正在使用它)。它应该以 post 标题命名文件。