回答編集履歴

3

修正

2017/10/10 11:38

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -56,9 +56,9 @@
56
56
 
57
57
  ```
58
58
 
59
- >python sort.py file1.py
59
+ >python sort.py file1.txt
60
60
 
61
- >python sort.py file2.py
61
+ >python sort.py file2.txt
62
62
 
63
63
  ```
64
64
 

2

追記

2017/10/10 11:38

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -67,3 +67,111 @@
67
67
  適当に作ったスクリプトで人様のデータをぶっ壊すのが怖すぎるので、非破壊的にしました。
68
68
 
69
69
  『ファイル名 + _sorted + 拡張子』という名前で新しく保存します。
70
+
71
+
72
+
73
+ ---
74
+
75
+ クソコード第二弾。
76
+
77
+ ```Python
78
+
79
+ with open('./file1_sorted.txt') as f:
80
+
81
+ value_list = [line.rstrip() for line in f]
82
+
83
+
84
+
85
+ with open('./file2_sorted.txt') as f:
86
+
87
+ key_list = [line.rstrip() for line in f]
88
+
89
+
90
+
91
+ for key in key_list:
92
+
93
+ count = 0
94
+
95
+ for value in value_list:
96
+
97
+ if key == value.split(';')[0]:
98
+
99
+ print(value)
100
+
101
+ count += 1
102
+
103
+ else:
104
+
105
+ print(count)
106
+
107
+ value_list = value_list[count:]
108
+
109
+ break
110
+
111
+ ```
112
+
113
+
114
+
115
+ いちおう、次のテストデータをパス。(テストデータが滅茶苦茶小さいが)
116
+
117
+ **file1_sorted.txt**
118
+
119
+ ```
120
+
121
+ 123;890
122
+
123
+ 123;789
124
+
125
+ 123;456
126
+
127
+ 234;678
128
+
129
+ 456;789
130
+
131
+ 456;960
132
+
133
+ 1234;550
134
+
135
+ ```
136
+
137
+
138
+
139
+ **file2_sorted.txt**
140
+
141
+ ```
142
+
143
+ 123
144
+
145
+ 234
146
+
147
+ 456
148
+
149
+ ```
150
+
151
+
152
+
153
+ **実行結果**
154
+
155
+ ```
156
+
157
+ >python hoge.py
158
+
159
+ 123;890
160
+
161
+ 123;789
162
+
163
+ 123;456
164
+
165
+ 3
166
+
167
+ 234;678
168
+
169
+ 1
170
+
171
+ 456;789
172
+
173
+ 456;960
174
+
175
+ 2
176
+
177
+ ```

1

追記

2017/10/10 11:25

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -5,3 +5,65 @@
5
5
  f3.write(str(hoge_dict[line]) + '\n')
6
6
 
7
7
  ```
8
+
9
+
10
+
11
+ コメントを受けて
12
+
13
+ ---
14
+
15
+ 即興で作ったソート用のスクリプトです。即興なので多分クソです。
16
+
17
+ ```Python
18
+
19
+ import sys
20
+
21
+
22
+
23
+ if len(sys.argv) != 2:
24
+
25
+ exit()
26
+
27
+
28
+
29
+ src_filename = sys.argv[1]
30
+
31
+ with open(src_filename) as f:
32
+
33
+ data_list = [line.rstrip() for line in f.readlines()]
34
+
35
+
36
+
37
+ data_list.sort(key=lambda x: int(x.split(';')[0]))
38
+
39
+ src_filename = src_filename.split('.')
40
+
41
+ dst_filename = src_filename[0] + '_sorted.' + src_filename[1]
42
+
43
+
44
+
45
+ with open(dst_filename, 'w') as f:
46
+
47
+ for datum in data_list:
48
+
49
+ f.write(datum + '\n')
50
+
51
+ ```
52
+
53
+
54
+
55
+ コマンドラインでデータを与えればソートします。
56
+
57
+ ```
58
+
59
+ >python sort.py file1.py
60
+
61
+ >python sort.py file2.py
62
+
63
+ ```
64
+
65
+
66
+
67
+ 適当に作ったスクリプトで人様のデータをぶっ壊すのが怖すぎるので、非破壊的にしました。
68
+
69
+ 『ファイル名 + _sorted + 拡張子』という名前で新しく保存します。