「Python系列」Python OS文件/目录方法、Python错误和异常

文章目录

    • 一、Python OS 文件/目录方法
      • 目录操作
      • 文件操作
      • 二、Python错误和异常
        • 常见的Python错误和异常
        • 异常处理
        • 示例
        • 自定义异常
        • 三、相关链接

          一、Python OS 文件/目录方法

          Python的os模块提供了与操作系统交互的方法,包括文件和目录的操作。以下是一些常用的os模块中的文件/目录方法:

          目录操作

          • os.getcwd(): 返回当前工作目录的路径。
            import os
            current_directory = os.getcwd()
            print(current_directory)
            
            • os.chdir(path): 改变当前工作目录到指定的路径。
              import os
              os.chdir("/path/to/new/directory")
              
              • os.mkdir(path, mode=0o777): 创建一个新目录。mode参数指定了目录的权限。
                import os
                os.mkdir("new_directory")
                
                • os.makedirs(path, mode=0o777, exist_ok=False): 递归地创建目录。如果目录已存在,exist_ok=True则不会引发异常。
                  import os
                  os.makedirs("path/to/new/directory", exist_ok=True)
                  
                  • os.rmdir(path): 删除一个空目录。
                    import os
                    os.rmdir("empty_directory")
                    
                    • os.removedirs(path): 递归地删除目录及其内容。
                      import os
                      os.removedirs("path/to/directory_and_contents")
                      
                      • os.listdir(path): 列出指定目录下的文件和子目录名。
                        import os
                        files_and_directories = os.listdir("/path/to/directory")
                        for item in files_and_directories:
                            print(item)
                        

                        文件操作

                        • os.path.exists(path): 检查指定路径的文件或目录是否存在。
                          import os
                          if os.path.exists("/path/to/file_or_directory"):
                              print("File or directory exists.")
                          
                          • os.path.isfile(path): 检查指定路径是否是一个文件。
                            import os
                            if os.path.isfile("/path/to/file"):
                                print("This is a file.")
                            
                            • os.path.isdir(path): 检查指定路径是否是一个目录。
                              import os
                              if os.path.isdir("/path/to/directory"):
                                  print("This is a directory.")
                              
                              • os.path.getsize(path): 返回指定文件的大小(以字节为单位)。
                                import os
                                file_size = os.path.getsize("/path/to/file")
                                print(f"File size: {file_size} bytes")
                                
                                • os.remove(path): 删除一个文件。
                                  import os
                                  os.remove("/path/to/file")
                                  
                                  • os.rename(old_path, new_path): 重命名文件或目录。
                                    import os
                                    os.rename("/path/to/old_name", "/path/to/new_name")
                                    
                                    • os.stat(path): 获取文件或目录的状态信息,返回一个os.stat_result对象。
                                      import os
                                      stat_info = os.stat("/path/to/file_or_directory")
                                      print(stat_info.st_size)  # 获取文件大小
                                      

                                      这些方法只是os模块中文件/目录操作的一小部分。os模块还提供了许多其他功能,如文件权限管理、环境变量操作、进程管理等。在使用这些功能时,请确保你的代码跨平台兼容,因为不同的操作系统可能在文件路径表示、文件权限等方面存在差异。

                                      二、Python错误和异常

                                      在Python中,错误和异常是程序运行时可能遇到的问题,这些问题会中断正常的程序流程。Python使用异常处理机制来管理这些错误和异常情况。当错误发生时,Python会抛出一个异常,你可以使用try、except、finally和else语句来捕获和处理这些异常。

                                      常见的Python错误和异常

                                      1. SyntaxError: 语法错误,代码中有语法上的问题,比如缺少括号、引号不匹配等。

                                      2. IndentationError: 缩进错误,Python使用缩进来表示代码块,缩进错误会导致语法错误。

                                      3. NameError: 名称错误,当尝试访问一个未定义的变量时触发。

                                      4. TypeError: 类型错误,当对某个对象执行不适当的操作时触发,比如尝试将字符串和数字相加。

                                      5. ValueError: 值错误,当函数的参数值不正确时触发,比如尝试将非数字字符串转换为整数。

                                      6. KeyError: 键错误,当在字典中查找不存在的键时触发。

                                      7. IndexError: 索引错误,当尝试访问序列(如列表、元组或字符串)中不存在的索引时触发。

                                      8. AttributeError: 属性错误,当尝试访问对象的一个不存在的属性时触发。

                                      9. IOError 或 OSError: 输入/输出错误或操作系统错误,涉及文件操作或底层系统调用时的错误。

                                      异常处理

                                      Python使用try、except、else和finally语句来处理异常。

                                      • try: 包含可能会引发异常的代码块。

                                      • except: 当try块中的代码引发异常时执行。可以指定要捕获的异常类型。

                                      • else: 如果try块中的代码没有引发异常,则执行else块中的代码。

                                      • finally: 无论是否引发异常,finally块中的代码都会执行。通常用于资源清理。

                                        示例

                                        try:
                                            # 尝试执行可能会引发异常的代码
                                            result = 10 / 0  # 这将引发一个ZeroDivisionError
                                        except ZeroDivisionError:
                                            # 捕获ZeroDivisionError异常,并处理它
                                            print("Cannot divide by zero!")
                                        except TypeError as e:
                                            # 捕获其他类型的异常,并打印异常信息
                                            print(f"A TypeError occurred: {e}")
                                        else:
                                            # 如果没有异常发生,执行这里的代码
                                            print("The division was successful.")
                                        finally:
                                            # 无论是否发生异常,都会执行这里的代码
                                            print("Cleaning up resources...")
                                        

                                        在上面的示例中,尝试除以零会引发ZeroDivisionError异常,该异常会被第一个except块捕获并处理。如果尝试执行其他操作(比如将字符串和数字相加)导致TypeError,那么第二个except块会捕获该异常。如果try块中的代码成功执行而没有引发任何异常,则会执行else块中的代码。无论是否发生异常,finally块中的代码都会被执行。

                                        自定义异常

                                        除了内置的异常类型,你还可以创建自定义异常类,通过继承内置的Exception类或其子类来实现。

                                        class CustomError(Exception):
                                            pass
                                        try:
                                            raise CustomError("This is a custom error.")
                                        except CustomError as e:
                                            print(e)
                                        

                                        在这个例子中,我们创建了一个名为CustomError的自定义异常类,并在try块中引发了这个异常。然后在except块中捕获并处理了这个自定义异常。

                                        三、相关链接

                                        1. Python下载安装中心
                                        2. Python官网
                                        3. Python软件下载
                                        4. 「Python系列」Python简介及案例
                                        5. 「Python系列」Python基础语法/数据类型
                                        6. 「Python系列」Python解释器
                                        7. 「Python系列」Python运算符
                                        8. 「Python系列」Python数据结构
                                        9. 「Python系列」Python元组
                                        10. 「Python系列」Python集合
                                        11. 「Python系列」Python列表