整理了一些在Python项目中常用的一些路径 / 文件 / 文件夹操作
路径操作
import os # 路径拼接 path1 = '~' path2 = 'desktop' file_path = os.path.join(path1, path2) # 判断文件(夹)是否存在 file_path = '要判断的文件(文件夹)路径' if os.path.exists(file_path): pass # 判断文件/文件夹是否存在 path = '要判断的文件/文件夹路径' if os.path.isfile(path): pass # 是文件 if os.path.isdir(path): pass # 是文件夹 # 创建文件夹 folder_path = '要创建的文件夹' if not os.path.exists(folder_path): os.mkdir(folder_path) # 递归创建文件夹 folder_path = '要创建的文件夹' if not os.path.exists(folder_path): os.makedirs(folder_path) # 规范化指定的路径 path = '路径' normpath = os.path.normpath(path) # 获取当前命令行所在的路径 path = '路径' abspath = os.path.abspath(path) # 递归遍历文件夹 def get_filepath(dir_path, list_name=[]): """递归获取目录下(文件夹下)所有文件的路径""" for file in os.listdir(dir_path): # 获取文件(夹)名 file_path = os.path.join(dir_path, file) # 将文件(夹)名补全为路径 if os.path.isdir(file_path): # 如果是文件夹,则递归 get_filepath(file_path, list_name) else: list_name.append(file_path) # 保存路径 return list_name get_filepath('./')
文件操作
# 读取文件的两种方法 # with open 不需要手动调用 f.close() with open('./config.txt', 'r', encoding='utf-8') as f: text = f.read() # open 需要手动调用 f.cloese() f = open('./config.txt', 'r', encoding='utf-8') text = f.read() f.close() # 写入文件同理 # 此处是覆盖写入(w),如果是追加写入,那么就是(w+) with open('./config.txt', 'w', encoding='utf-8') as f: f.write("需要写入文件的内容") f.writelines("写入一行") # 或 f = open('./config.txt', 'w', encoding='utf-8') f.write("需要写入文件的内容") f.writelines("Hello HaiCoder") f.close() # ########################################################## # 检查文件操作权限 import os # path 为文件路径,mode 为操作模式 path = "/file/path/foo.txt" # os.F_OK: 检查文件是否存在 if os.access(path, os.F_OK): print("Given file path is exist.") # os.R_OK: 检查文件是否可读 if os.access(path, os.R_OK): print("File is accessible to read") # os.W_OK: 检查文件是否可以写入 if os.access(path, os.W_OK): print("File is accessible to write") # os.X_OK: 检查文件是否可以执行 if os.access(path, os.X_OK): print("File is accessible to execute")
JSON操作
import json # data 变量定义如下 data = {'a': 1, 'b': {'c': '2', 'd': [3]}} # 普通输出 with open('temp.json', 'w', encoding='utf-8') as fp: json.dump(data, fp) # 或者 # fp.write(json.dumps(data)) # temp.json 内容如下 # {"a": 1, "b": {"c": "2", "d": [3]}} # 美化输出 with open('temp-beautify.json', 'w', encoding='utf-8') as fp: json.dump(data, fp, indent=4) # 或者 # fp.write(json.dumps(data, indent=4)) # temp-beautify.json 内容如下 # { # "a": 1, # "b": { # "c": "2", # "d": [ # 3 # ] # } # } # temp.json 内容如下 # {"a": 1, "b": {"c": "2", "d": [3]}} # 读取 json 文件 with open('temp.json', 'r', encoding='utf-8') as fp: result = json.load(fp) # 或者 # result = json.loads(fp.read()) print(result, result['b'], result.get('b'), sep='\n') # 输出如下 # {'a': 1, 'b': {'c': '2', 'd': [3]}} # {'c': '2', 'd': [3]} # {'c': '2', 'd': [3]}
文件进阶操作
该部分参考自:https: // blog.csdn.net/NeverLate_gogogo/article/details/109333970
# 可以在程序中直接使用open()方法来检查文件是否存在和可读写。 # 如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。 # 程序无法访问文件,可能有很多原因: # 如果你open的文件不存在,将抛出一个FileNotFoundError的异常 # 文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。 # 所以可以使用下面的代码来判断文件是否存在: try: f = open() f.close() except FileNotFoundError: print("File is not found.") except PermissionError: print("You don't have permission to access this file.") # 其实没有必要去这么细致的处理每个异常,上面的这两个异常都是IOError的子类。所以可以将程序简化一下: try: f = open() f.close() except IOError: print("File is not accessible.")
本文由程序员小墨原创发表于 张小弟之家(blog.only4.work),转载请保留出处,谢谢。
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。