こんばんわ。
分かりにくい質問内容でしたら申し訳ありません。
Pythonを使用して、テキストの文字列の特定文字を置換したいのですが出来ません…。
\tを,にと、テキストの中にある改行コードを削除したいのですが、エラーではじかれてしまいます。
超初心者で、つたないコードではありますが掲載します。
python
1import numpy as np 2import sys 3import io 4 5x = open("test.txt", "r") 6y = open("test.txt", "r") 7z = open("test2.txt", "w") 8 9gyou = sum(1 for i in x) 10print(gyou-2) 11maxime = gyou-2 12 13data=[] 14for i in range(22): 15 y.readline() 16for i in range(maxime): 17 lines1 = y.readline() 18 data.append(lines1) 19 20print(data) 21 22z.writelines(data) 23 24x.close() 25y.close() 26z.close() 27 28z = open("test2.txt", "r") 29n = open("test3.txt", "w") 30 31bad_words = ['Channels', 'Samples', 'Date', 'Time', 'Y_Unit_Label', 32 'X_Dimension', 'X0', 'Delta_X', '***End_of_Header***', 'X_Value', '\n'] 33 34with z as oldfile, n as newfile: 35 for line in oldfile: 36 if not any(bad_word in line for bad_word in bad_words): 37 n.replace('\t', ',') 38 n.writelines(line) 39 40z.close() 41n.close()
実行するとAttributeError: '_io.TextIOWrapper' object has no attribute 'replace'が出てきます。
調べてみはしたのですが、良く分からず解決しないままです…。
またデータ間に入る改行コードのみを消したいのですが、行頭文字を参照にした削除もうまくいかない状況です。
上記コードを用いて
1111\t2222\n
3333\t4444\n
\n
5555\t6666\n
7777\t8888\n
…
というデータを
1111,2222\n
3333,4444\n
5555,6666\n
7777,8888\n
…
にしたいと考えています。
質問内容が分かりにくくて申し訳ありません。
よろしければご回答のほうお願いいたします…。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/05 07:25
2019/01/05 07:34
2019/01/05 07:45
2019/01/05 07:50
2019/01/05 07:56