python 初心者程度のshinです
上級者のアドバイスをご指示ください。
下記の様にtk.filedialogで得たフルパスを、 途中省略(...)のトータルバイトを指定バイト以下で表示する関数は pythonには有るのでしょうか。(VB、vbaではPathCompactPath) フルパス C:\Users\dare\安佐AppData\Local\Programs\Python\Python38" コンパクトパス C:\Users\dare\安佐AppData...\Python38 自分なりに作ったみたコードでの質問ですが
①そのような関数の有無及びご提示
②コードのより良い手直しのご指示
③ファイルパスのルート記号(¥,,/)は、os環境に依存し
split記号の使い分けに影響が有るのでしょうか
チェックも含めご指導宜しくお願いいたします。
該当のソースコード
python
1 def Compact_Path(self): 2 #raw文字列を使う(rまたはRを先頭に付けます) 3 fullpath = R"C:\Users\dare\安佐AppData\Local\Programs\Python\Python38" 4 fullbyte = 45 5 ar_str=fullpath.split('\') 6 ar_byt = [len(str.encode('shift_jis')) for str in ar_str] 7 n = len(ar_str) 8 print(ar_str) 9 print(ar_byt) 10 11 Nokori_byte = fullbyte - ar_byt.pop(0) - ar_byt.pop(-1) - 4 # (... + \ = 4) 12 print('Nokori=' + str(Nokori_byte)) 13 14 i = 0 15 num = 1 + ar_byt[1] 16 temp = "" 17 while num <= Nokori_byte: 18 num = num + 1 + ar_byt[i+1] 19 temp = temp + '\' + ar_str[i+1] 20 i += 1 21 22 Compact_Path = ar_str.pop(0) + temp + '...' + '\' + ar_str.pop(-1) 23 # Compact_Path = ar_str[0] + temp + '...' + '\' + ar_str[n-1] # 上記に同じ 24 25 print(str(Compact_Path)) 26 27
--- 環境 ---
python3.8
tkinter8.6
pycharm2021.1

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。