Pythonでテキストファイルで取得した投稿内容を
csvファイルへ書き込みたいです。
投稿日時を書き込みできますが、
テキストファイルで取得したテキストデータをCSVへ空白として書き込みされます。
空白として書き込まれないようにするにはどのように変更すれば良いでしょうか。
もし分かる方がいましたら教えて頂けると助かります。
お手数ですが、よろしくお願い致します。
実現内容 csv書き込み
投稿日時 | 投稿内容 |
---|---|
2022年3月1日 | テスト投稿TEST#python#code#programinプログラミング簡単コーディングPython簡単pythonできること |
現在の結果
投稿日時 | 投稿内容 |
---|---|
2022年3月1日 |
テキストファイル
フォロワー11 コメント5件 Enterキーで投稿します 2022年2月27日 · おはよう! #元気 2022年2月28日 · 本日良い天気 #晴 コメント2件 Enterキーで投稿します 2022年3月1日 · テスト 投稿 TEST #python #code #programin プログラミング 簡単 コーディング Python簡単 pythonできること Enterキーで投稿します 2022年3月2日 · こんにちわ! Enterキーで投稿します 2022年3月3日 · おはようございます! Enterキーで投稿します
テキストファイルで取得したテキストデータ
post出力を csvへ書き込みたいです。
#全てのリストの要素を取り出す for idx in range(len(ids)): post=print(ids[idx]) 2022年3月1日 テスト投稿 TEST #python #code #programin プログラミング 簡単 コーディング Python簡単 pythonできること Enterキーで投稿します
全体コード
import re import pandas as pd #ファイルパステキスト path = r"C:\Users\test\Desktop\test.txt" with open(path, "r", encoding="utf-8") as f: text = f.read() #特定の文字を置換 text = re.sub(r'[ ·\ufeff]', '', text) #ブロックを作成して特定の文字のみ検索 block = re.findall( r'^\d+年\d+月\d+日$(?:(?!^\d+年\d+月\d+日$).)+?Enterキーで投稿します', text, re.DOTALL|re.MULTILINE) #print(block) #新しいリストを作成して改行を削除 New_list = [b.split('\n') for b in block] search_words = ['#python', 'test'] #リスト内にsearch_wordsの文字が含んでいたら表示 for l in New_list: if any(w in l for w in search_words): ids = l #print(ids) #全てのリストの要素を取り出す for idx in range(len(ids)): post=print(ids[idx]) #テキストデータをCSVへ保存 df = pd.DataFrame({"投稿日時":["2022年3月1日"], "投稿内容":[post]}) df = df.set_index('投稿日時') df.to_csv("output_pd.csv", encoding="shift_jis")
回答2件
あなたの回答
tips
プレビュー