回答編集履歴

2

Python2系で動くようにコードを修正しました。

2022/03/25 14:35

投稿

退会済みユーザー
test CHANGED
@@ -25,19 +25,22 @@
25
25
 
26
26
  ## 追記
27
27
 
28
+ 追記のさらに編集です。
28
29
 
29
- 追記です。
30
- array部分をarray1に変更してみました。
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, encoding='shift_jis') as f:
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

コードを追記しました。

2022/03/25 13:41

投稿

退会済みユーザー
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
+