weixin_46296502 2023-01-27 21:39 采纳率: 50%
浏览 121
已结题

python拖拽文件问题

在把文件拖拽到窗口后,获取的文件路径不是系统路径,无法使用OS模块获取文件的信息,
代码如下:
import os
from tkinter import messagebox
import windnd
from tkinter import *
window_width = 200
window_height = 200


def window_init(window, width, height):
    ws = window.winfo_screenwidth()
    hs = window.winfo_screenheight()
    # 居中
    x = (ws / 2) - (width / 2)
    y = (hs / 2) - (height / 2)
    window.geometry("%dx%d+%d+%d" % (width, height, x, y))
    window.resizable(False, False)
    window.overrideredirect(True)
    window.attributes('-topmost', 'true')


def message(title, msg, parent=None):
    messagebox.showinfo(title=title, message=msg, parent=parent)


def dragged_files(files):
    print(files)
    a = str(files[0])
    b = a.rfind('\\')
    b1 = a.rfind('b')
    c1 = a[b1 + 2: -1]
    print(c1)
    fs = os.stat(c1)


root = Tk()
window_init(root, window_width, window_height)
windnd.hook_dropfiles(root, func=dragged_files)
root.mainloop()
报错如下:

img

获取的文件路径:

img

实际的文件路径:
F:\xfmovie\桌面\1.txt
  • 写回答

7条回答 默认 最新

  • 社区专家-Monster-XH 2023-01-27 21:51
    关注

    这是由于获取到的文件路径是字节类型(b'F:\xfmovie\llxd7\xc0\xc3\xe6\1.txt'),而 os.stat() 方法需要的是字符串类型的路径。可以使用 python 的 bytes.decode() 方法将字节类型转换为字符串类型。

    评论

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 创建了问题 1月27日

悬赏问题

  • ¥20 SQL server表计算问题
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出