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

回答編集履歴

3

修正

2017/10/10 11:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -27,8 +27,8 @@
27
27
 
28
28
  コマンドラインでデータを与えればソートします。
29
29
  ```
30
- >python sort.py file1.py
30
+ >python sort.py file1.txt
31
- >python sort.py file2.py
31
+ >python sort.py file2.txt
32
32
  ```
33
33
 
34
34
  適当に作ったスクリプトで人様のデータをぶっ壊すのが怖すぎるので、非破壊的にしました。

2

追記

2017/10/10 11:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -32,4 +32,58 @@
32
32
  ```
33
33
 
34
34
  適当に作ったスクリプトで人様のデータをぶっ壊すのが怖すぎるので、非破壊的にしました。
35
- 『ファイル名 + _sorted + 拡張子』という名前で新しく保存します。
35
+ 『ファイル名 + _sorted + 拡張子』という名前で新しく保存します。
36
+
37
+ ---
38
+ クソコード第二弾。
39
+ ```Python
40
+ with open('./file1_sorted.txt') as f:
41
+ value_list = [line.rstrip() for line in f]
42
+
43
+ with open('./file2_sorted.txt') as f:
44
+ key_list = [line.rstrip() for line in f]
45
+
46
+ for key in key_list:
47
+ count = 0
48
+ for value in value_list:
49
+ if key == value.split(';')[0]:
50
+ print(value)
51
+ count += 1
52
+ else:
53
+ print(count)
54
+ value_list = value_list[count:]
55
+ break
56
+ ```
57
+
58
+ いちおう、次のテストデータをパス。(テストデータが滅茶苦茶小さいが)
59
+ **file1_sorted.txt**
60
+ ```
61
+ 123;890
62
+ 123;789
63
+ 123;456
64
+ 234;678
65
+ 456;789
66
+ 456;960
67
+ 1234;550
68
+ ```
69
+
70
+ **file2_sorted.txt**
71
+ ```
72
+ 123
73
+ 234
74
+ 456
75
+ ```
76
+
77
+ **実行結果**
78
+ ```
79
+ >python hoge.py
80
+ 123;890
81
+ 123;789
82
+ 123;456
83
+ 3
84
+ 234;678
85
+ 1
86
+ 456;789
87
+ 456;960
88
+ 2
89
+ ```

1

追記

2017/10/10 11:25

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,4 +1,35 @@
1
1
  改行する一番簡単な方法は、改行文字を追加することです。
2
2
  ```Python
3
3
  f3.write(str(hoge_dict[line]) + '\n')
4
- ```
4
+ ```
5
+
6
+ コメントを受けて
7
+ ---
8
+ 即興で作ったソート用のスクリプトです。即興なので多分クソです。
9
+ ```Python
10
+ import sys
11
+
12
+ if len(sys.argv) != 2:
13
+ exit()
14
+
15
+ src_filename = sys.argv[1]
16
+ with open(src_filename) as f:
17
+ data_list = [line.rstrip() for line in f.readlines()]
18
+
19
+ data_list.sort(key=lambda x: int(x.split(';')[0]))
20
+ src_filename = src_filename.split('.')
21
+ dst_filename = src_filename[0] + '_sorted.' + src_filename[1]
22
+
23
+ with open(dst_filename, 'w') as f:
24
+ for datum in data_list:
25
+ f.write(datum + '\n')
26
+ ```
27
+
28
+ コマンドラインでデータを与えればソートします。
29
+ ```
30
+ >python sort.py file1.py
31
+ >python sort.py file2.py
32
+ ```
33
+
34
+ 適当に作ったスクリプトで人様のデータをぶっ壊すのが怖すぎるので、非破壊的にしました。
35
+ 『ファイル名 + _sorted + 拡張子』という名前で新しく保存します。