Python自学堂---解决Python显示图片功能,调用自定义路径(变量形式)错误:路径出现\ufeff

今天的学习内容主要是在更新完善自己的写的图书管理系统;

然后在显示封面时,遇到了这样的问题

FileNotFoundError: [Errno 2] No such file or directory: 'Books\\\ufeff如何阅读一本书\\cover.jpg'

在网络上搜索了好多,看了好多教程,尝试了好多方法都没有用处

刚开始我使用os.path,join来拼接路径,发现根本没法用

我就想要不直接用字符串拼接得了,结果还是没有用

突然,我想起这两个教程:

https://blog.csdn.net/Z1065701256/article/details/103400036

另外一个教程找不到了,大致是

if path.startswith('\ufeff'):
    path=path.encode('utf-8')[7:].decode('utf-8)

能不能把这两个教程结合一下呢?

binggo!

完美解决!!!撒花,累死我了,一晚上就解决了这么一个问题,自学真的是让人头大!加油!!!

def show_books():
    print('图书馆现有图书如下:')
    with open('Books\Books.txt', 'r', encoding='utf-8') as rstream_Books:
        books_content = rstream_Books.read()
        j = 0
        while True:
            i = books_content.find('\n', j)
            if i == -1:
                break
            book_name = books_content[j:i]
            j = i + 1
            if book_name.startswith('\ufeff'):
                book_name = book_name.encode('utf-8-sig')[6:].decode('utf-8')
# 解决book_cover=mpimg.imread(book_cover_path)  报错FileNotFoundError: [Errno 2] No such file or directory: 'Books\\\ufeff如何阅读一本书\\cover.jpg'
            book_path = 'Books' + '\\' + book_name
            book_details_path = book_path + '\details.txt'
            book_cover_path = book_path + '\cover.jpg'

            # from PIL import Image
            # import matplotlib.pyplot as plt
            # 相对路径和绝对路径都可以
            book_cover = mpimg.imread(book_cover_path)  # 读取图片
            cover = book_cover.shape
            # 设置多个figure,设置figure的标题
            plt.imshow(book_cover)  # 显示图片
            plt.axis('off')  # 不显示坐标轴
            plt.show()
            with open(book_details_path, 'r', encoding='utf-8') as rstream_book_details:
                book_details = rstream_book_details.read()

代码附到这里,大家自行修改路径,测试一下咯

用的是pycharm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值