回答編集履歴

3

LouiS0616さんの指摘事項を元に注意事項を追加!

2018/03/18 11:40

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -100,6 +100,12 @@
100
100
 
101
101
  [sys.argv[0]](https://docs.python.jp/3/library/sys.html#sys.argv) が使えるのを忘れていました。。
102
102
 
103
+ **追記:取得できるのはメインモジュールのモジュール名のみです**
104
+
105
+
106
+
107
+ LouiS0616さんへコード指摘ありがとうございました。
108
+
103
109
 
104
110
 
105
111
  ```Python

2

関数名をpiyopiyoからexecutable_pathに変更

2018/03/18 11:39

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- def piyopiyo() -> None:
119
+ def executable_path() -> None:
120
120
 
121
121
  print(sys.argv[0])
122
122
 
@@ -142,9 +142,9 @@
142
142
 
143
143
  def main():
144
144
 
145
- piyopiyo()
145
+ #hogehoge()
146
146
 
147
- #hogehoge()
147
+ executable_path()
148
148
 
149
149
 
150
150
 
@@ -172,7 +172,7 @@
172
172
 
173
173
  #mod.hogehoge()
174
174
 
175
- mod.piyopiyo()
175
+ mod.executable_path()
176
176
 
177
177
 
178
178
 

1

sys.argv[0]

2018/03/18 01:48

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -89,3 +89,97 @@
89
89
  ■参考情報
90
90
 
91
91
  [6.2. re — 正規表現操作](https://docs.python.jp/3/library/re.html)
92
+
93
+
94
+
95
+ ---
96
+
97
+ 2018/03/18追記
98
+
99
+
100
+
101
+ [sys.argv[0]](https://docs.python.jp/3/library/sys.html#sys.argv) が使えるのを忘れていました。。
102
+
103
+
104
+
105
+ ```Python
106
+
107
+ # -*- coding: utf-8 -*-
108
+
109
+ import traceback
110
+
111
+ import re
112
+
113
+ import sys
114
+
115
+
116
+
117
+
118
+
119
+ def piyopiyo() -> None:
120
+
121
+ print(sys.argv[0])
122
+
123
+
124
+
125
+
126
+
127
+ def hogehoge() -> None:
128
+
129
+ for line in traceback.format_stack(limit=2):
130
+
131
+ m = re.match('\s*File\s"(.*)"', line)
132
+
133
+ assert m is not None
134
+
135
+ print(m.group(1))
136
+
137
+ return
138
+
139
+
140
+
141
+
142
+
143
+ def main():
144
+
145
+ piyopiyo()
146
+
147
+ #hogehoge()
148
+
149
+
150
+
151
+
152
+
153
+ if __name__ == "__main__":
154
+
155
+ main()
156
+
157
+ ```
158
+
159
+
160
+
161
+ ```Python
162
+
163
+ # -*- coding: utf-8 -*-
164
+
165
+ import mod
166
+
167
+
168
+
169
+
170
+
171
+ def main():
172
+
173
+ #mod.hogehoge()
174
+
175
+ mod.piyopiyo()
176
+
177
+
178
+
179
+
180
+
181
+ if __name__ == "__main__":
182
+
183
+ main()
184
+
185
+ ```