teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2019/01/05 07:51

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -14,8 +14,9 @@
14
14
  continue
15
15
 
16
16
  line = line.replace('\t', ',')
17
- newfile.writelines(line)
17
+ newfile.write(line)
18
18
  ```
19
19
 
20
20
  - with文を使うなら、生の open/close は不要です。
21
- - continueを使うと、『~のときはスキップ』という処理を素直に書けます。
21
+ - continueを使うと、『~のときはスキップ』という処理を素直に書けます。
22
+ - 一行だけ書き出すのなら、writelinesよりwriteの方が自然です。

1

追記

2019/01/05 07:51

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -2,4 +2,20 @@
2
2
  ```diff
3
3
  - n.replace('\t', ',')
4
4
  + line = line.replace('\t', ',')
5
- ```
5
+ ```
6
+
7
+ 全体的にも、改善の余地がいくつかあります。とりあえずコード後半だけ。
8
+ ```Python
9
+ with open("test2.txt", "r") as oldfile, \
10
+ open("test3.txt", "w") as newfile:
11
+
12
+ for line in oldfile:
13
+ if any(bad_word in line for bad_word in bad_words):
14
+ continue
15
+
16
+ line = line.replace('\t', ',')
17
+ newfile.writelines(line)
18
+ ```
19
+
20
+ - with文を使うなら、生の open/close は不要です。
21
+ - continueを使うと、『~のときはスキップ』という処理を素直に書けます。