2017-07-05 20 views
-1

サブレッジの内容を取得しています。サブディレクトリはARです。 投稿ID、タイトル、投稿内容、投稿者、投稿日、スコア、コメント、コメントIDを取得してから、txtファイルに書き込む必要があります。 私が直面している問題は次のとおりです。python prawコメントをつけてファイル形式で書き込む

(1)コメントとコメントIDを1つのファイルにまとめることはできますか?したがって、それは私のoutput.txtとして例えば

blablabla 

blablabla 

blablabla 

のように示してpost ID, title, post content, author, post date, score, comments, and comment ID (2)私が得たselftextは、[このRedditに]、ブレークラインを持っているだろう[1]複数のブレークラインを持っています。 将来の分析のためにデータがcsv/excelに転送されるため、コンテンツをすべて1行にしたいと思います。

マイコード:

import praw, datetime, os 
reddit = praw.Reddit('bot1') 
subreddit = reddit.subreddit('AR') 
for submission in subreddit.top(limit=1): 
    date = datetime.datetime.utcfromtimestamp(submission.created_utc) 

    for comment in submission.comments: 
     print("Comment author: ", comment.author) 
     print("Comments: ", comment.body) 
     indexFile_comment = open('path' + 'index_comments.txt', 'a+') 
     indexFile_comment.write('"' + str(comment.author) + '"' + ', ' + '"' + str(comment.body) + '"' + '\n') 
    print("Post ID: ", submission.id) 
    print("Title: ", submission.title) 
    print("Post Content: ", submission.selftext) 
    print("User Name: ", submission.author) 
    print("Post Date: ", date) 
    print("Point: ", submission.score) 
    indexFile = open('path' + 'index.txt', 'a+') 
    indexFile.write('"' + str(submission.id) + '"' + ', ' + '"' + str(submission.title) + '"' + ', ' + '"' + str(submission.selftext) + '"' + ', ' + '"' + str(submission.author) + '"' + ', ' + '"' + str(date) + '"' + ', ' + '"' + str(submission.score) + '"' + '\n') 
    print ("Successfuly writing in file") 
    indexFile.close() 
+0

セルフテキストを1行にするには、 'str.replace(" \ n "、" ")'のように '\ n'をスペースで置き換えることができます。私は、あなたが意味することは、コメントとコメントIDを組み合わせることによって理解できませんが、あなたは私にそれを説明できますか? – PeskyPotato

+0

selftextコードにstr.replaceを適用するにはどうすればよいですか? コメントとコメントIDは、投稿ID、タイトル、投稿内容、投稿者、投稿日、スコア順にリストされます。投稿ID、タイトル、自己紹介文、著者、日付、スコア、コメントID 1、コメントID 1のコメント、コメントID 2、コメントID 2のコメントなどのようになります。 –

+0

str(submission.selftext.replace( "\ n"、 ""))を使用して修正します。 –

答えて

0

あなたのコードでst.replace("\n"," ")を実装することができます1行の提出を取得します。変数stsubmission.selftextです。

コメントIDを取得するには、comment.idを実行して、本体のループをcomment.bodyにすることができます。

編集:最初の行で

、私だけsubmission.idsubmission.titleを追加したが、あなたは同じように残りの部分を追加することができます。ループは、同じ文字列の最後にコメントを追加します。 forループの後に、私は新しい行の文字をスペース文字で置き換えます。 recordをテキストファイルに書き込むことができます。次の提出先に行くと、次のrecordがテキストファイルの新しい行に追加されます。

record = str(submission.id) + " " + str(submission.title) + " " 
for comment in submission.comments: 
    record = record + comment.author + " " + comment.body + " " 
record.replace("\n", " ") 
+0

コメントIDと本文を取得する方法を知っていますが、それらをすべて1行にtxtファイルに入れることは可能ですか?コメントID 1、コメントID 2、コメントID 2のコメント –

+0

私は自分の答えを更新しました。うまくいけば、これは役に立ちます。 – PeskyPotato

関連する問題