关于文件路径作为参数传递时的转义问题

   本人刚开始学习Python。因为学习了数据库和GUI,所以想用图形化界面来控制数据库的操作。

在写代码的过程中使用open(),来打开文件时,遇到了文件路径的转义问题。虽然在调试时
可以用r''来解决,但我想用图形化界面获取文件路径,再进行读取。所以势必要把文件路径作为
参数传递。

filename = 'E:\大学\编程\Python\课程资料\homework\test.txt'
f = open(filename)

一开始,像我这样写就会报错
经过百度,我又尝试了许多方法,但都有错误

方法之一:

>>> filename = 'E:\大学\编程\Python\课程资料\homework\test.txt'
>>> filename = r'\\'.join(filename.split("\\"))
>>> filename
'E:\\\\大学\\\\编程\\\\Python\\\\课程资料\\\\homework\test.txt'

无法替换特殊的转义字符

在机缘巧合下,我发现利用文件对话框获取文件路径。

    import tkinter as tk
    from tkinter import filedialog
     
    root = tk.Tk()
    root.withdraw()
     
    file_path = filedialog.askopenfilename()

那以此方法获取的文件路径会不会有转义问题呢?

>>> from tkinter import filedialog
>>> root = tk.Tk()
>>> root.withdraw()
‘’
>>> file_path = filedialog.askopenfilename()
>>> file_path
'E:/大学/编程/Python/课程资料/homework/test.txt'
>>> open(file_path)
<_io.TextIOWrapper name='E:/大学/编程/Python/课程资料/homework/test.txt' mode='r' encoding='cp936'>

通过filedialog.askopenfilename()获取的文件路径是Linux的表示方式,而不是Windows的表示方式。
所以就避免了转义问题。

资料来源(https://blog.csdn.net/shawpan/article/details/78759199)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值