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

Python小程序 - 文件解析

1. 目录下文件解析:特定文件、文件列表、文件数

  • Windows文件目录分格使用“ / ” 或 “ \\ ”
  • 文件目录路径包含空格的,绝对路径使用“双引号”,保证文件路径的可识别性
  • 保存和读取结果时,使用 encoding='UTF-8'
  • 可以添加对文件目录的过滤
# FileFindInFolder.pyimport osfd = "H:/My/Study/Python"   # source folder
ef = '.pdf'                 # specified file suffix for finding
rf = "c:/record.txt"        # final result output
lrf = []                    # list for result output
cn = 0                      # count for file findfor root, dirs, files in os.walk(fd):  # travel and check all folders and filesfor i in files:if i.endswith(ef):             # file specified endingcn = cn + 1fpath = root + i           # file full pathlrf.append(fpath)# result output and save
with open(rf, 'w', encoding='UTF-8') as fp:fp.write("Total: " + str(cn) + '\n')for i in lrf:fp.write(i + '\n')# read file and show content
with open(rf, 'r', encoding='UTF-8') as fp:fl = fp.readlines()for i in fl:print(i)>>>
Total: 40H:/My/Study/Pythondjango 3.1.pdfH:/My/Study/Pythondjango.pdfH:/My/Study/PythonPyQt5中文教程.pdf          

2. 文件内容解析

  • 文件读取来自linux系统
  • 查找当前文件夹所有文件并显示文件大小,结果输出到指定文件
  • 文本样例
    8       ./.local/share/evolution/mail
    60      ./.local/share/evolution
    596     ./.local/share/zeitgeist/fts.index
    1900    ./.local/share/zeitgeist
    4       ./.local/share/sounds
    20      ./.local/share/icons
    8       ./.local/share/telepathy/mission-control
  • 实际文件读取显示
    b'4\t./Public\n'
    b'4\t./Pictures\n'
    b'76\t./.local/share/gvfs-metadata\n'
    b'4\t./.local/share/unity-settings-daemon\n'
    b'20\t./.local/share/unity-webapps\n'
    b'8\t./.local/share/applications\n'
    b'4\t./.local/share/evolution/tasks/trash\n'
    b'8\t./.local/share/evolution/tasks/system\n'
# FileCal.pyfn = './example.txt'  # source file
dicf = {}             # dictory for folder, file count and total file size
tsize = 0             # total sizewith open(fn, 'rb') as fp:rf = fp.readlines()for i in rf:li = str(i).replace('b','').replace('t',' ').replace('n','').replace('\\','').replace('\'','')   # special char should be replaced; example: b'4\t./Public\n'ls = li.split(' ',1)     # only split file size and folder using first spacefsize = int(ls[0])       # file sizetsize = tsize + fsizefdf = ls[1]              # dir and filetl = fdf.split('/')      # seperate dir and filepdir = ''for i in range(len(tl)-1):pdir = pdir + tl[i] + '/'if not dicf.get(pdir):   # dictory: key - dir, value - file sizedicf[pdir] = fsizeelse:dicf[pdir] = dicf[pdir] + fsize# print dir and inclued file size, total file size
for i in dicf:print("%-50s" %(i), ' : ', "%10s" %(dicf[i]), ' K')     # format outputprint("Toal Size: ", tsize, ' K')   >>>
/                                                  :      571040  K
./.local/share/                                     :        4268  K
./.local/share/evolu io/ asks/                      :          24  K
./.local/share/evolu io/                            :         112  K
./.local/share/evolu io/memos/                      :           8  K
./.local/share/evolu io/addressook/                 :           8  K
./.local/share/evolu io/caledar/                    :          24  K
./.local/share/evolu io/mail/                       :           8  K
./.local/share/zei geis /                           :        3088  K
./.local/share/ elepa hy/                           :          16  K
./.local/share/au ilus/                             :           8  K
./.local/                                           :        4304  K
./Docume s/                                         :           4  K
./.gcof/apps/                                       :          16  K
...... omit ...
./Desk op/                                          :          24  K
./.kde/share/apps/kcof_upda e/log/                  :           8  K
./Dowloads/firefox (2)/g k2/                        :          16  K
./Dowloads/firefox (2)/gmp-clearkey/0.1/            :         104  K
./Dowloads/firefox (2)/fo s/                        :        1200  K
./Dowloads/firefox (2)/rowser/chrome/icos/defaul /  :          12  K
./Dowloads/firefox (2)/rowser/ex esios/             :           4  K
./Dowloads/firefox (2)/rowser/icos/                 :          20  K
./Dowloads/firefox (2)/rowser/fea ures/             :        4160  K
./Dowloads/firefox (2)/dic ioaries/                 :         568  K
./Dowloads/firefox (2)/icos/                        :           4  K
./Dowloads/firefox (2)/defaul s/pref/               :           4  K
Toal Size:  1359440  K

相关文章:

Python小程序 - 文件解析

1. 目录下文件解析:特定文件、文件列表、文件数 Windows文件目录分格使用“ / ” 或 “ \\ ”文件目录路径包含空格的,绝对路径使用“双引号”,保证文件路径的可识别性保存和读取结果时,使用 encodingUTF-8可以添加对文件目录的过…...

.mxdown-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?

导言: 在数字时代,网络安全威胁层出不穷,其中.mxdown-V-XXXXXXXX、.vollhavhelp-V-XXXXXXXX、.arricklu-V-XXXXXXXX勒索病毒已成为备受关注的问题。这种病毒以其高级加密技术和威胁勒索金的方式,严重危害用户和企业的数据安全。本…...

audio 标签动态src 且src是http无法播放问题

<audioref"audio" :src"src"alt"加载失败"controls/>src是动态传参的 无法播放因为动态src需要在赋值后对audio进行重载 this.$refs.audio.load()注意如果&#xff0c;src跟本项目地址IP端口协议不同&#xff0c;会出现跨域问题。audio标…...

Leetcode—485.最大连续1的个数【中等】明天修改

2023每日刷题&#xff08;十五&#xff09; Leetcode—2.两数相加 迭代法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l…...

JavaWeb 怎么在servlet向页面输出Html元素?

service()方法里面的方法体&#xff1a; resp.setContentType("text/html;charsetutf-8");//获得输出流PrintWriter对象PrintWriter outresp.getWriter();out.println("<html>");out.println("<head><title>a servlet</title>…...

Spring及SpringBoot中AOP的使用

Spring中AOP示例 <dependencies><!--Spring核心包--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.6</version></dependency><!--引入SpringBean--&…...

cmake多目录构建初步成功

目录和代码和 首次cmake 多目录构建失败 此文一样&#xff1b; 只有一个CMakeLists.txt&#xff1b; cmake_minimum_required(VERSION 3.10) project(mytest3 VERSION 1.0) include_directories("${PROJECT_SOURCE_DIR}/include") add_executable(mytest3 src/main…...

idea插件(一)-- SequenceDiagram(UML自动生成工具)

目录 1. 安装 2. 默认快捷键 3. 操作说明 4. 导出为图片与UML类图 4.1 导出为图片&#xff1a; 4.2 导出 UML 类图 SequenceDiagram是从java、kotlin、scala&#xff08;Beta&#xff09;和groovy&#xff08;limited&#xff09;代码生成简单序列图&#xff08;UML&…...

STM32 APP跳转到Bootloader

stm32 app跳转到bootloade 【STM32】串口IAP功能的实现&#xff0c;BootLoader与App相互跳转 STM32 从APP跳入BootLoader问题...

[RISC-V]verilog

小明教IC-1天学会verilog(7)_哔哩哔哩_bilibili task不可综合&#xff0c;function可以综合...

Log4j-tag丢失

一、引言 最近有个线上日志丢失tag的问题&#xff0c;是组内封装了后置请求的拦截器把请求的响应结果存到ClickHouse里面去&#xff0c;但是日志总有一些tag丢失。 作者提出父级线程的threadlocal被清空&#xff0c;同事认为可能是threadlocal的弱引用在gc的时候被回收。两种想…...

代码随想录算法训练营第五十六天|1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143. 最长公共子序列 int longestCommonSubsequence(char * text1, char * text2){int len1 strlen(text1);int len2 strlen(text2);int dp[len11][len21];for (int i 0; i < len1; i){for (int j 0; j < len2; j){dp[i][j] 0;}}for (int i 1; i < len1; i){f…...

虚拟机和Windows的文件传输

拖拽/复制粘贴 直接将虚拟机linux系统的文件拖曳到windows桌面&#xff0c;或者直接将windows的文件拖曳到虚拟机linux系统当中&#xff0c;可以实现文件传输。当然复制粘贴方式也可以&#xff0c;但是前提是需要下载安装好VMware tools。 共享文件夹 概念&#xff1a;在Win…...

leetcode分类刷题:二叉树(八、二叉搜索树特有的自顶向下遍历)

二叉搜索树是一个有序树&#xff1a;每个二叉树都满足左子树上所有节点的值均小于它的根节点的值&#xff0c;右子树上所有节点的值均大于它的根节点的值&#xff1b;利用该性质&#xff0c;可以实现二叉搜索树特有的自顶向下遍历 700. 二叉搜索树中的搜索 思路1、自顶向下的遍…...

Vue 插槽 组件插入不固定内容

定义好一个组件&#xff0c;如果想插入图片或视频这非常不好的控制应该显示什么&#xff0c;这个时候可以使用插槽插入自定义内容 默认插槽 <Login><template><h1>我是插入的内容</h1></template></Login >组件 <slot></slot>…...

webpack打包时配置环境变量

webpack打包时配置环境变量 一、常规环境变量配置1. 使用webpack.DefinePlugin定义全局常量2. 在Vue静态页面中使用该环境变量 二、纯静态文件配置环境变量1. 使用npm或yarn安装html-webpack-plugin2. 在Webpack配置中引入并使用插件3. 使用htmlwebpackplugin.options方式配置环…...

【c++|opencv】一、基础操作---3.访问图像元素

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 访问图像元素 1. 访问图像像素 1.1 访问某像素 //灰度图像&#xff1a; image.at<uchar>(j, i) //j为行数&#xff0c;i为列数 //BGR彩色图像 i…...

机器视觉3D项目评估的基本要素及测量案例分析

目录 一. 检测需求确认 1、产品名称&#xff1a;【了解是什么产品上的零件&#xff0c;功能是什么】 2、*产品尺寸&#xff1a;【最大兼容尺寸】 3、*测量项目&#xff1a;【确认清楚测量点位】 4、*精度要求&#xff1a;【若客户提出的精度值过大或者过小&#xff0c;可以和客…...

力扣日记10.31-【栈与队列篇】前 K 个高频元素

力扣日记&#xff1a;【栈与队列篇】前 K 个高频元素 日期&#xff1a;2023.10.31 参考&#xff1a;代码随想录、力扣 347. 前 K 个高频元素 题目描述 难度&#xff1a;中等 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意…...

TensorFlow案例学习:简单的音频识别

前言 以下内容均来源于官方教程&#xff1a;简单的音频识别&#xff1a;识别关键字 音频识别 下载数据集 下载地址&#xff1a;http://storage.googleapis.com/download.tensorflow.org/data/mini_speech_commands.zip 可以直接浏览器访问下载。 下载完成后将其解压到项目…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx

“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网&#xff08;IIoT&#xff09;场景中&#xff0c;结合 DDS&#xff08;Data Distribution Service&#xff09; 和 Rx&#xff08;Reactive Extensions&#xff09; 技术&#xff0c;实现 …...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...