回答編集履歴

1

フォルダ名取得部の説明追加

2017/11/02 02:47

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -83,3 +83,93 @@
83
83
  plt.show()
84
84
 
85
85
  ```
86
+
87
+
88
+
89
+ ---
90
+
91
+
92
+
93
+ **【追記】**
94
+
95
+
96
+
97
+ ターゲットのファイルが
98
+
99
+ ``files = glob.glob("./*/target.csv")``
100
+
101
+ から
102
+
103
+ ``files = glob.glob("./*/datafile/target.csv")``
104
+
105
+ に変更されたとのことなので、一応説明。
106
+
107
+
108
+
109
+
110
+
111
+ 例えば、
112
+
113
+ ``file = "./AAA/BBB/CCC/target.csv"``
114
+
115
+ の場合、
116
+
117
+ ``os.path.dirname(file)``
118
+
119
+ を使うと
120
+
121
+ ``./AAA/BBB/CCC/target.csv`` から ``./AAA/BBB/CCC`` を抜き出すことができます。
122
+
123
+
124
+
125
+ 更にこの戻り値 ``./AAA/BBB/CCC``に対し
126
+
127
+ ``os.path.split()``
128
+
129
+ を使うと
130
+
131
+ ``['./AAA/BBB', 'CCC']`` と分割したリストを得ることができますので
132
+
133
+ このリストの2個目の要素を取得することで ``CCC`` を得ることができます。
134
+
135
+
136
+
137
+ つまり現状は
138
+
139
+ ```Python
140
+
141
+ date_str = os.path.split(os.path.dirname(file))[1]
142
+
143
+ # files = "./AAA/BBB/CCC/target.csv"
144
+
145
+ # にて 'CCC' が得られる
146
+
147
+ ```
148
+
149
+ という実装になっております。
150
+
151
+
152
+
153
+ で、今回は更に上の階層のフォルダ名は ``BBB`` を取得したいとのことですので、
154
+
155
+ 上記リストの1番目の要素 ``./AAA/BBB`` を更にもう一度
156
+
157
+ ``os.path.split()``
158
+
159
+ を使うことにより ``['./AAA', 'BBB']`` に分割し、このリストの2番目の要素を使用するとよいのではないでしょうか。
160
+
161
+
162
+
163
+ つまり
164
+
165
+ ```Python
166
+
167
+ date_str =os.path.split(os.path.split(os.path.dirname(file))[0])[1]
168
+
169
+ # files = "./AAA/BBB/CCC/target.csv"
170
+
171
+ # にて 'BBB' が得られる
172
+
173
+ ```
174
+
175
+ に書き換えると良いと思います。