質問編集履歴

4

細かい説明不備を修正

2018/11/27 09:23

投稿

Hayashi_Jelly
Hayashi_Jelly

スコア26

test CHANGED
File without changes
test CHANGED
@@ -140,7 +140,7 @@
140
140
 
141
141
 
142
142
 
143
- 実際に使いたい場面で、まだ出力されません。
143
+ 実際に使いたい場面で、まだヒットしません。
144
144
 
145
145
  (192.168.xxx.xxx/32のようなプライベートアドレスをキーワードにして、ヒットする行のその他の情報が欲しい)
146
146
 

3

指摘を受け修正

2018/11/27 09:23

投稿

Hayashi_Jelly
Hayashi_Jelly

スコア26

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,9 @@
36
36
 
37
37
  for FILE in filelist:
38
38
 
39
- # with open(OUT_FILE, 'w') as write_file: ご指摘を受け修正
39
+ # with open(OUT_FILE, 'w') as write_file:
40
+
41
+ # 修正1openのモードを'w'ではループの度上書きされるのでaに修正
40
42
 
41
43
  with open(OUT_FILE, "a") as write_file:
42
44
 
@@ -48,7 +50,9 @@
48
50
 
49
51
  for line in check_file:
50
52
 
51
- # if line in keyword: ご指摘を受け修正
53
+ # if line in keyword:
54
+
55
+ # 修正1 keyword in lineの間違えのため修正
52
56
 
53
57
  if keyword in line:
54
58
 
@@ -127,3 +131,17 @@
127
131
  `keyword`, `line`は任意のものが取得できていると思います。
128
132
 
129
133
  `line in keyword` を出力すると`false`を返しますが、かといって`if line in keyword == False:`と記述しても、任意の結果が得られません(全く出力されない)。
134
+
135
+
136
+
137
+ ## 修正1後
138
+
139
+ ありがとうございます。具体例だと、通りました!(out.txtにhoge、hogehogeの行が出力された。)
140
+
141
+
142
+
143
+ 実際に使いたい場面で、まだ出力されません。
144
+
145
+ (192.168.xxx.xxx/32のようなプライベートアドレスをキーワードにして、ヒットする行のその他の情報が欲しい)
146
+
147
+ 文字コードとかpythonがutf-8で、kwlist.txtやチェックしたいファイルはshift-jisなので、その辺りかな、と思い当たる点が出てきました。

2

指摘事項を修正

2018/11/27 09:21

投稿

Hayashi_Jelly
Hayashi_Jelly

スコア26

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,9 @@
36
36
 
37
37
  for FILE in filelist:
38
38
 
39
+ # with open(OUT_FILE, 'w') as write_file: ご指摘を受け修正
40
+
39
- with open(OUT_FILE, 'w') as write_file:
41
+ with open(OUT_FILE, "a") as write_file:
40
42
 
41
43
  with open(KWLIST_FILE, 'r') as list_file:
42
44
 
@@ -46,7 +48,9 @@
46
48
 
47
49
  for line in check_file:
48
50
 
49
- if line in keyword:
51
+ # if line in keyword: ご指摘を受け修正
52
+
53
+ if keyword in line:
50
54
 
51
55
  write_file.write(line)
52
56
 

1

具体例を追記しました。

2018/11/27 08:00

投稿

Hayashi_Jelly
Hayashi_Jelly

スコア26

test CHANGED
File without changes
test CHANGED
@@ -44,8 +44,6 @@
44
44
 
45
45
  for keyword in list_file:
46
46
 
47
- write_file.write(keyword)
48
-
49
47
  for line in check_file:
50
48
 
51
49
  if line in keyword:
@@ -56,11 +54,69 @@
56
54
 
57
55
 
58
56
 
57
+ boolean = OUT_FILE in glob.glob("*")
58
+
59
+ if boolean == True:
60
+
61
+ os.remove(OUT_FILE)
62
+
63
+ main()
64
+
59
65
  ```
60
66
 
61
67
 
62
68
 
69
+ ## 具体例
70
+
71
+ checkKeywordディレクトリにhoge.txtがあります。
72
+
73
+ ```
74
+
75
+ hoge
76
+
77
+ hogehoge
78
+
79
+ fuga
80
+
81
+ fugafuga
82
+
83
+ piyo
84
+
85
+ piyopiyo
86
+
87
+ ```
88
+
89
+
90
+
91
+ kwlist.txtの内容は以下の通りです
92
+
93
+ ```
94
+
95
+ hoge
96
+
97
+ ```
98
+
99
+
100
+
101
+ この場合、hoge.txt内には`hoge`というキーワードで`hoge`と`hogehoge`がヒットします。
102
+
63
- のはずのですが、上手くいきません。
103
+ 最終的成果物out.txtに
104
+
105
+ ```
106
+
107
+ hoge
108
+
109
+ hogehoge
110
+
111
+ ```
112
+
113
+ を出力させるスクリプトを作成したいですが、上手くいきません。out.txtには何も出力されません。
114
+
115
+
116
+
117
+ ## 備考
118
+
119
+
64
120
 
65
121
  スクリプト最終行付近の`if line in keyword:` の挙動がよく分かりません。
66
122