当前位置: 首页 > news >正文

福鼎网站优化公司建一个门户网站多少钱

福鼎网站优化公司,建一个门户网站多少钱,电子版简历在线制作,专注律师微网站建设与律师微信营销目标#xff1a;遍历文件夹#xff0c;计算文件夹下包含文件和文件夹的大小。将这些结果存入python自带的数据库。 用大模型帮我设计并实现。 Step1 创建一个测试用的目录结构 创建目录结构如下所示#xff1a; TestDirectory/ │ ├── EmptyFolder/ │ ├── SmallF…目标遍历文件夹计算文件夹下包含文件和文件夹的大小。将这些结果存入python自带的数据库。 用大模型帮我设计并实现。 Step1 创建一个测试用的目录结构 创建目录结构如下所示 TestDirectory/ │ ├── EmptyFolder/ │ ├── SmallFiles/ │ ├── file1.txt (1 KB) │ ├── file2.txt (2 KB) │ └── file3.txt (3 KB) │ ├── LargeFiles/ │ ├── big_file1.bin (10 MB) │ ├── big_file2.bin (20 MB) │ └── big_file3.bin (30 MB) │ └── NestedFolders/├── Subfolder1/│ ├── file4.txt (4 KB)│ ├── file5.txt (5 KB)│ └── EmptySubfolder1/│├── Subfolder2/│ ├── file6.txt (6 KB)│ └── EmptySubfolder2/│└── Subfolder3/├── file7.txt (7 KB)└── EmptySubfolder3/import os import shutildef create_test_directory(root_path):# 创建根目录os.makedirs(root_path, exist_okTrue)# 创建空目录empty_folder_path os.path.join(root_path, EmptyFolder)os.makedirs(empty_folder_path, exist_okTrue)# 创建包含小文件的目录small_files_path os.path.join(root_path, SmallFiles)os.makedirs(small_files_path, exist_okTrue)for i in range(1, 4):file_path os.path.join(small_files_path, ffile{i}.txt)with open(file_path, w) as file:file.write(x * (i * 1024)) # 生成大小为 i KB 的文件# 创建包含大文件的目录large_files_path os.path.join(root_path, LargeFiles)os.makedirs(large_files_path, exist_okTrue)for i in range(1, 4):file_path os.path.join(large_files_path, fbig_file{i}.bin)with open(file_path, wb) as file:file.write(os.urandom(i * 10 * 1024 * 1024)) # 生成大小为 i * 10 MB 的二进制文件# 创建多层次嵌套目录nested_folders_path os.path.join(root_path, NestedFolders)os.makedirs(nested_folders_path, exist_okTrue)for i in range(1, 4):subfolder_path os.path.join(nested_folders_path, fSubfolder{i})os.makedirs(subfolder_path, exist_okTrue)file_path os.path.join(subfolder_path, ffile{i 3}.txt)with open(file_path, w) as file:file.write(x * ((i 3) * 1024))empty_subfolder_path os.path.join(subfolder_path, fEmptySubfolder{i})os.makedirs(empty_subfolder_path, exist_okTrue)在os.makedirs函数中exist_ok参数用于指定是否在目录已经存在的情况下忽略错误。 如果exist_ok为True无论目标目录是否存在os.makedirs会执行不会报错。如果exist_ok为False并且目标目录已经存在os.makedirs会引发一个FileExistsError异常。 exist_okTrue 允许函数在调用时多次执行即使已经创建了目录结构也不会引发错误。 Step2 遍历文件夹计算文件夹大小 设计三个函数 get_file_size(file_path) 函数 输入文件路径 file_path。输出返回该文件的大小字节数使用 os.path.getsize 函数获取。 format_size(size_bytes) 函数 输入一个表示字节数的整数 size_bytes。输出返回格式化后的字符串该字符串包含适当的单位B、KB、MB、GB以及转换后的大小值。该函数通过迭代循环将字节数转换为合适的单位。 get_directory_size(directory_path) 函数 输入目录路径 directory_path。输出返回该目录及其子目录中所有文件的总大小。思路 使用 os.walk 遍历目录得到每个文件的路径。对于每个文件调用 get_file_size 函数获取其大小并累计到总大小。对于每个子目录递归调用 get_directory_size 函数将返回的子目录大小累加到总大小。返回总大小。 这样通过这三个函数的协作可以获取文件和目录的大小信息并且通过 format_size 函数可以将字节数格式化为易读的字符串。 import osdef get_file_size(file_path):计算文件大小字节数return os.path.getsize(file_path)def format_size(size_bytes):将字节数格式化为人类可读的字符串for unit in [B, KB, MB, GB, TB]:if size_bytes 1024.0:breaksize_bytes / 1024.0return f{size_bytes:.2f} {unit}def get_directory_size(directory_path):递归计算目录大小包括目录中所有文件和子目录的大小total_size 0for dirpath, dirnames, filenames in os.walk(directory_path):# 计算文件大小for filename in filenames:file_path os.path.join(dirpath, filename)total_size get_file_size(file_path)# 计算子目录大小for dirname in dirnames:subdirectory_path os.path.join(dirpath, dirname)total_size get_directory_size(subdirectory_path)return total_size上面返回的total_size是字节数。 另外说一下函数中用到的 print(fxxxx) 中的 fxxxx 是一个 f-string是一种字符串格式化的方式是在字符串前加上 f 或 F 前缀的字符串字面值。它允许在字符串中嵌入表达式这些表达式会在运行时求值并将结果插入到字符串中。可以使用大括号 {} 括起表达式这些表达式将在运行时被替换为相应的值。例如 name 秦汉唐 age 25 print(f姓名 {name} \t年龄 {age})f-string 中的 {name} 和 {age} 会分别被替换为变量 name 和 age 的值。 在测试的时候(testRun.py中) import os import shutil from folder_size_calculator import get_directory_size, format_size, get_file_sizeif __name____main__:# 测试函数create_test_directory(TestDirectory)# 测试directory_path TestDirectory # 替换为你的目录路径total_size get_directory_size(directory_path)formatted_size format_size(total_size)print(f {directory_path} 文件夹大小为: {formatted_size})执行testRun.py结果类似 python testRun.pyTestDirectory 文件夹大小为: 120.07 MBStep3 优化 回顾上面的计算文件夹大小的程序可能有些可以改进的方向 异常问题 目前的代码缺少对一些异常情况的处理例如无法访问的文件或目录。性能问题 对于非常大的目录结构递归遍历可能会导致重复计算可能影响计算文件大小效率。符号链接问题 目前的程序不处理符号链接可能会导致计算错误或无限循环。文件类型判断和过滤问题 目前程序对文件和目录的处理方式一样没有区分文件类型。 异常处理问题 因为是对文件进行处理所以通过增加文件处理异常 try:# 尝试获取文件大小或目录列表# ... except (PermissionError, OSError) as e:print(fError accessing file or directory: {e}) except FileNotFoundError as e:print(fFile not found: {e}) except Exception as e:print(fAn unexpected error occurred: {e})对 get_file_size 函数进行异常处理 def get_file_size(file_path):计算文件大小字节数try:size_bytes os.path.getsize(file_path)return size_bytesexcept (PermissionError, FileNotFoundError) as e:print(f访问文件出错: {e})return 0except Exception as e:print(f出现异常: {e})return 0对 get_directory_size 函数进行异常处理 def get_directory_size(directory_path):递归计算目录大小包括目录中所有文件和子目录的大小total_size 0try:for dirpath, dirnames, filenames in os.walk(directory_path):# 计算文件大小for filename in filenames:file_path os.path.join(dirpath, filename)total_size os.path.getsize(file_path)# 计算子目录大小for dirname in dirnames:subdirectory_path os.path.join(dirpath, dirname)total_size get_directory_size(subdirectory_path)except (PermissionError, FileNotFoundError) as e:print(f访问文件异常: {e})return 0 # 或者抛出其他异常except Exception as e:print(f出现异常: {e})return 0return total_size性能问题 我想利用数据库存储已经处理过的文件和文件夹。最简单的方式数据库就用python自带的数据库边做便设置数据库格式。
http://www.hkea.cn/news/14402497/

相关文章:

  • 温州专业手机网站制作哪家便宜蚌埠建设网站
  • 天津建设合同备案网站wordpress调用添加登陆页面按钮
  • 企业网站的优化建议中陕核建设集团网站
  • 公司百度网站建设朔州做网站
  • 厦门旅游集团网站建设网站浏览器兼容性通用
  • 怎么给一个网站做推广杭州室内设计工作室
  • 无锡滨湖住房与城乡建设局网站wordpress文件执行顺序
  • 免备案网站空间科技项目的类型有
  • 无法跳转到建设银行网站百度写作助手
  • 网站文章标题网站建设做的快
  • 电梯网站建设二维码网站建设
  • 伊宁市建设局网站网站建站公司哪家好
  • app设计网站模板免费下载汽车大全官网
  • 家装网站建设公司哪家好做私房蛋糕在哪些网站写东西
  • 手机网站建设推广软文canva可画官网
  • 卡密网站怎么做自己建设的网站如何优化
  • 网站托管服务 优帮云自家企业网络推广
  • 法律推广网站建设银行企业网银网站无法打开
  • 怎样做移动端网站wordpress 后台 添加菜单
  • 郑州网站建设首选创新app开发去哪个网站
  • 网站栏目页模板安全联盟可信任网站认证 网站
  • 用什么软件搭建网站源码做网站只开发手机端可不可以
  • 招生网站建设策划方案哪家公司做网站
  • 莱芜哪家企业做网站网站建设说课获奖视频
  • 谁会制作网站广告设计公司合同
  • 济南营销网站制作广告公司招聘
  • 贵阳经开区建设管理局网站当地的网站建设
  • 昆山网站建设培训内蒙古呼和浩特市邮编
  • 儿童做的小游戏下载网站软件开发代码大全
  • 南海区住房和城乡建设部网站好看简单易做的网站