回答編集履歴
2
Python2系で動くようにコードを修正しました。
test
CHANGED
@@ -25,19 +25,22 @@
|
|
25
25
|
|
26
26
|
## 追記
|
27
27
|
|
28
|
+
追記のさらに編集です。
|
28
29
|
|
29
|
-
追記です。
|
30
|
-
|
30
|
+
手元の環境の2系はPython 2.7.18でしたので、このバージョンで動くように修正してみました。
|
31
|
+
(1行目のcodingを指定しないとmerged_filenameの宣言の行でエラーになりましたので追加しています)
|
32
|
+
(ファイルの名前に日本語が含まれるとエラーになるので、basenameの宣言の行にもdecodeを入れました。多分utf-8で大丈夫と思うのですがどうでしょうか。)
|
31
33
|
|
32
34
|
```py
|
35
|
+
# coding=utf-8
|
33
36
|
import os
|
34
37
|
import sys
|
35
38
|
|
36
39
|
merged_text = ""
|
37
40
|
for file in sys.argv[1:]:
|
38
|
-
with open(file
|
41
|
+
with open(file) as f:
|
39
|
-
basename = os.path.basename(file)
|
42
|
+
basename = os.path.basename(file).decode('utf-8')
|
40
|
-
text1 = f.read()
|
43
|
+
text1 = f.read().decode('cp932')
|
41
44
|
array1 = [basename + ',' + x for x in text1.splitlines()]
|
42
45
|
text2 = '\n'.join(array1) + '\n'
|
43
46
|
merged_text += text2
|
@@ -45,6 +48,6 @@
|
|
45
48
|
merged_filename = "結合テキスト.txt"
|
46
49
|
dirname = os.path.dirname(sys.argv[1])
|
47
50
|
with open(os.path.join(dirname, merged_filename), "w") as f:
|
48
|
-
f.write(merged_text)
|
51
|
+
f.write(merged_text.encode('utf-8'))
|
49
52
|
```
|
50
53
|
|
1
コードを追記しました。
test
CHANGED
@@ -23,3 +23,28 @@
|
|
23
23
|
f.write(merged_text)
|
24
24
|
```
|
25
25
|
|
26
|
+
## 追記
|
27
|
+
|
28
|
+
|
29
|
+
追記です。
|
30
|
+
arrayの部分をarray1に変更してみました。
|
31
|
+
|
32
|
+
```py
|
33
|
+
import os
|
34
|
+
import sys
|
35
|
+
|
36
|
+
merged_text = ""
|
37
|
+
for file in sys.argv[1:]:
|
38
|
+
with open(file, encoding='shift_jis') as f:
|
39
|
+
basename = os.path.basename(file)
|
40
|
+
text1 = f.read()
|
41
|
+
array1 = [basename + ',' + x for x in text1.splitlines()]
|
42
|
+
text2 = '\n'.join(array1) + '\n'
|
43
|
+
merged_text += text2
|
44
|
+
|
45
|
+
merged_filename = "結合テキスト.txt"
|
46
|
+
dirname = os.path.dirname(sys.argv[1])
|
47
|
+
with open(os.path.join(dirname, merged_filename), "w") as f:
|
48
|
+
f.write(merged_text)
|
49
|
+
```
|
50
|
+
|