多半是python版本的问题或者是你输入有问题,比如pytorch FileNotFoundError: [Errno 2] No such file or directory: ‘False’

写在前面:
前面的案例不想看可以直接看结尾的4个结论。
直接看第4个结论,就是文章的最后。二八定律。【方法4通用性极强】
快速跳转至 通用性方法4
QQ:1981791622。
备注:我是CSDN道友

源代码:

with open ("pi_digits.txt","r") as file_object:#注意是C:\\文件夹1\\文件夹2,不是C:\,一定要记住!!!
    contents = file_object.read()
    print(contents)
#>>>
FileNotFoundError: [Errno 2] No such file or directory: 'pi_digits.txt'

 
 
 
 

    由No such file or directory分析,文件是有的,那就是路径。
    该怎么修改?如下:
    在这里插入图片描述
    在这里插入图片描述
    因此完整路径是:
    C:\Users\YJG\Desktop\pi_digits.txt
    多说一句:要找到你的文件地址,只需要把你要打开的文件直接拖到编辑器终端的窗口里,就会显示出文件地址,然后复制一下就好。(这个操作秀)
    于是修改代码:

    with open ("C:\Users\YJG\Desktop\pi_digits.txt","r") as file_object:#注意是C:\\文件夹1\\文件夹2,不是C:\,一定要记住!!!
        contents = file_object.read()
        print(contents)
    
     
     
     
     
    • <

    还是报错:报错原因是路径,且往下文看。
    在这里插入图片描述
    由C语言的学习经验,将路径修改如下:

    C:\\Users\\YJG\\Desktop\\pi_digits.txt

    对比
    C:\Users\YJG\Desktop\pi_digits.txt
    多了一个\。
    再看结果,报错我打嘴:

    with open ("C:\\Users\\YJG\\Desktop\\pi_digits.txt","r") as file_object:#注意是C:\\文件夹1\\文件夹2,不是C:\,一定要记住!!!
        contents = file_object.read()
        print(contents)
    
     
     
     
     

      在这里插入图片描述
      为什么加了一个斜杠\就解决报错了?答案先不说,请先思考3秒:
      3。。。。2。。。。。1
      答案超级简单:转义字符啊。
      正确路径是:

      C:\Users\YJG\Desktop\pi_digits.txt
      
       
       
       
       
      • <

      用字符串表示,注意一个细节是:"\\"------>\
      此时,你是不是马上恍然大悟。赶紧关注我,为思考点赞!
      所以,用字符串表示C:\Users\YJG\Desktop\pi_digits.txt

      "C:\\Users\\YJG\\Desktop\\pi_digits.txt"
      
       
       
       
       

        最后结果成功出现也验证了这个原理。

        多说一点:敲黑板!!!总结!!!

        因为单独一个"\",在Python中带有转义字符的意思。如:’\t’就代表按下一个tab键,"\\"就表示\,"\b"表示退格。
        在Windows操作系统中,路径分隔符有两种:一种用\\,另一种是用/,你也可以只用一个/来分隔路径。

        来一起看一下效果:

        with open ("C:/Users/YJG/Desktop/pi_digits.txt","r") as file_object:#注意是C:\\文件夹1\\文件夹2,不是C:\,也可以用/。
            contents = file_object.read()
            print(contents)
        
         
         
         
         

          在这里插入图片描述
          还可以加个 r ,如下:

          with open (r"C:\Users\YJG\Desktop\pi_digits.txt") as file_object: # 加个r
              contents = file_object.read()
              print(contents.strip())
          
           
           
           
           

            在这里插入图片描述
            小结:
            在Windows操作系统中,路径分隔符有两种:一种用\\,另一种是用/。
            但是呢,别忘了\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下三种格式;

            格式1:常用,尤其是做项目的时候。推荐使用。
            with open (r"C:\Users\YJG\Desktop\pi_digits.txt") as file_object:
                contents = file_object.read()
                print(contents.strip())
            格式2with open ("C:\\Users\\YJG\\Desktop\\pi_digits.txt") as file_object:
                contents = file_object.read()
                print(contents.strip())   
            格式3with open ("C:/Users/YJG/Desktop/pi_digits.txt") as file_object:
                contents = file_object.read()
                print(contents.strip())
            #============================= 通用性强  =============================
            方法4:【懒,一劳永逸,通用性强】
            import os
            import sys
            BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
            sys.path.insert(0, BASE_DIR)
            ### 下面是你 with open()函数的相关代码
            with open("pi_digits.txt")  as f:
                contents = f.read()
            print(contents)
            
             
             
             
             

              通用性方法4
              补充第4种方法,先给代码,不讲原理:

              import os
              import sys
              BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
              sys.path.insert(0, BASE_DIR)
              ### 下面是你 with open()函数的相关代码
              with open("pi_digits.txt")  as f:
                  contents = f.read()
              print(contents)
              
               
               
               
               

                你只需这样做:【你只管复制粘贴,啥都不用改,4条命令通用的】
                【复制粘贴以下4行代码到你报错文件的头四行即可】

                import os
                import sys
                BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
                sys.path.insert(0, BASE_DIR)
                
                 
                 
                 
                 

                  有了上面的四行代码就可以解决这类的问题。通用性极强。【在python中遇到这类问题,无脑复制粘贴上面4行代码到报错文件的头四行即可解决问题】
                  复制粘贴后再运行你的py文件 头四行,报错我打嘴。

                  另外,在Python中出现以下问题也可以通过上面的4条命令来解决:

                  问题:
                  ModuleNotFoundError: No module named xxx

                  解决:

                  import os
                  import sys
                  BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
                  sys.path.insert(0, BASE_DIR)
                  # 在报错文件的头四行添加上述4条命令即可解决问题
                  
                   
                   
                   
                   

                    复制粘贴后再运行你的py文件 头四行,报错我打嘴。

                    下面的内容可看可不看。

                    也就是说,你在你报错的写 with open()py文件中,头四行,必须是头四行添加以下代码,就可以 以文件名 的方式 读取文件里的内容:

                    import os
                    import sys
                    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
                    sys.path.insert(0, BASE_DIR)
                    ### 下面是你 with open()函数的相关代码
                    with open("pi_digits.txt")  as f:
                        contents = f.read()
                    print(contents)
                    
                     
                     
                     
                     

                      一句话,凡是遇到FileNotFoundError: [Errno 2] No such file or directory: 'pi_digits.txt'这种问题,直接在该文件的头四行添加上面的4行代码即可完美解决问题。不用管你路径是什么。

                      第4种方法需要你懂python解释器是如何找到文件的路径的。
                      关于这一点,我有2点要说:【知道你懒得研究原理】
                      1.你其实无需关心 懂python解释器是如何找到文件的路径的 这句话是否理解,因为编程最重要的是先把功能实现跑起来,管他三七二十一
                      2.如果你想了解 懂python解释器是如何找到文件的路径的这句话的答案,你可以看别人正确的理解的文章,比如我写的:
                      https://blog.csdn.net/YJG7D314/article/details/121431086
                      点击23-9一小节,截图+代码说的明明白白。

                      你是否掌握了呢?为思考点赞!
                      ====================================== 我是有底线的 ======================================

                      Logo

                      为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

                      更多推荐