python tkinter 记事本里文件图标拖放打开

import windnd
def dragged_files(files):
    myopenitem=''.join((item.decode('gbk') for item in files))
    global filename
    filename = myopenitem
    if filename == '':
        filename = None
    else:
        root.title('Rogabet notepad   ' + os.path.basename(filename))
        textPad.delete(1.0, END)
        f = open(filename, 'r')
        f2 = open(file=filename, mode='rb')
        import chardet
        bimabima = f2.read()
        resultbima = chardet.detect(bimabima)
        resultbima2 = str(resultbima)
        print(resultbima2)
        if '-8' in resultbima2:
            showinfo('notice', '此文件是UTF-8编码,即将使用转码打开.')
            print(resultbima2)
            oldfile2 = filename
            global newfile2
            # newfile2 = asksaveasfilename(initialfile='utf8-ansi编码.txt', defaultextension='.txt')
            fp_ansi = open('utf8_ansi.txt', 'wb')  # 转码后输出的文件
            fp_utf8 = open(oldfile2, 'rb')  # 待转码的文件
            data = ""
            data = fp_utf8.read()
            data = data.decode('utf-8')  # 以二进制格式读入的数据需要先转码(转为内部码)才可以继续转换
            data = data.encode('mbcs', errors='ignore')  # 关键,将内部码再次编码
            fp_ansi.write(data)  # 写入文件
            fp_ansi.close()
            fp_utf8.close()
            f3 = open('utf8_ansi.txt', 'r')
            textPad.insert(1.0, f3.read())
        if '-16' in resultbima2:
            showinfo('notice', '此文件是UTF-16-unicode编码,即将使用转码打开.')
            print(resultbima2)
            oldfile3 = filename
            global newfile3
            # newfile3 = asksaveasfilename(initialfile='unicode-ansi编码.txt', defaultextension='.txt')
            fp_ansi = open('unicode_ansi.txt', 'wb')  # 转码后输出的文件
            fp_utf16 = open(oldfile3, 'rb')  # 待转码的文件
            data = ""
            data = fp_utf16.read()
            data = data.decode('utf-16')  # 以二进制格式读入的数据需要先转码(转为内部码)才可以继续转换
            data = data.encode('mbcs', errors='ignore')  # 关键,将内部码再次编码
            fp_ansi.write(data)  # 写入文件
            fp_ansi.close()
            fp_utf16.close()
            f3 = open('unicode_ansi.txt', 'r')
            textPad.insert(1.0, f3.read())
        else:
            textPad.insert(1.0, f.read())
            f.close()
windnd.hook_dropfiles(root,func=dragged_files)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rogabet-note

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值