【Python】os.walk的使用及获取文件夹下所有文件的大小

【Python】os.walk的使用及获取文件夹下所有文件的大小,第1张

在说oswalk前,我们先在ipython3中help一下,打印如下

oswalk返回一个生成器,每次遍历返回的对象是一个元组,元组中包含三个元素:

dirpath:当前遍历的文件夹的路径,类型为字符串;

dirname:当前遍历的文件夹下的子文件夹的名字,类型为列表;

filenames:当前遍历的文件夹下的文件的名字,类型为列表;

创建一个包含子文件夹和文件的walk文件夹,通过终端tree看一下目录结构:

我们通过for循环遍历oswalk()的返回结果

运行结果如下:

使用oswalk()获取文件夹下的文件大小

1先用fseek将文件指针移到文件末尾,再用ftell获取文件内指针当前的文件位置。这个位置就是文件大小。

2#include <stdioh>

int main()

{

    FILE pf = fopen("F:/1png", "rb");

    if (!pf)

        return -1;

    fseek(pf, 0, SEEK_END); // 移到文件末尾

    printf("size = %d\n", ftell(pf));

    fclose(pf);

    return 0;

}

3运行结果如下

查询具体的文件大小首先你要找到该文件,然后使用du -s ,du -sh,ls -lh,都是可以看到该文件的大小的。 不过这些命令后面需要带文件名,比如查找文件名为backupsh文件的大小,命令为:du -s backupsh ,ls -lh backupsh。更多Linux *** 作知识,可以百度《Linux就该这么学》。

没啥好的办法,只能用遍历解决,下面是完整的方法,但没考虑到隐藏文件和系统文件。

private long GetDictSize(string path)

{

if (!SystemIODirectoryExists(path))

return 0;

string[] fs = SystemIODirectoryGetFiles(path, "", SystemIOSearchOptionAllDirectories);

//获取该文件夹中所有的文件名

long ll = 0;

foreach (string f in fs) {

dynamic fa = SystemIOFileGetAttributes(f);

SystemIOFileInfo fi = new SystemIOFileInfo(f);

ll += fiLength;

}

return ll;

}

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起双击运行

@echo off

rem 获取当前目录里一个指定名称文件的大小

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

set "file=指定文件zip"

if not exist "%file%" (echo;"%file%" not found&pause&exit)

for /f "delims=" %%a in ('dir /a-d-h/b "%file%"') do echo;%%~za

echo;%#% +%$%%$%/%@% %z%

pause

exit

获取文件大小不需要安装额外的模块,用-s *** 作符即可:

假设文件路径在变量$file_path中,那么$file_size文件大小可以用如下语句获得:

$file_size = -s $file_path;

得到的结果单位为Byte(字节),如果要换算成KB,则将结果除1024,如果要换算成MB,则再除1024,以此类推。

要获取的尺寸,可以用模块 Image::Size

use Image::Size;

my ($globe_x, $globe_y) = imgsize($file_path);

大概有这些方法可以获得文件大小

FileSizeByName(需要引用IdGlobal单元)

GetFileSize

FileSize(不能获得正在使用的文件大小)

FileSeek

TFileStreamSize

下面是使用例子

1。FileSizeByName(需要引用IdGlobal单元)

begin

if

OpenDialog1Execute

then

begin

ShowMessage(IntToStr(FileSizeByName(OpenDialog1Filename)));

end;

2。GetFileSize

var

FileHandle:integer;

begin

if

OpenDialog1Execute

then

begin

FileHandle

:=

FileOpen(OpenDialog1FileName,

0);

ShowMessage(IntToStr(GetFileSize(FileHandle,

nil)));

FileClose(FileHandle);

end;

3。FileSize(不能获得正在使用的文件大小)

var

f:

file;

begin

if

OpenDialog1Execute

then

begin

AssignFile(f,

OpenDialog1FileName);

Reset(f,

1);

ShowMessage(IntToStr(FileSize(f)));

CloseFile(f);

end;

4。FileSeek

var

FileHandle:integer;

begin

if

OpenDialog1Execute

then

begin

FileHandle

:=

FileOpen(OpenDialog1FileName,

0);

ShowMessage(IntToStr(FileSeek(FileHandle,0,2)));

FileClose(FileHandle);

end;

5。TFileStreamSize

var

FS:

TFileStream;

begin

if

OpenDialog1Execute

then

begin

FS

:=

TFileStreamCreate(OpenDialog1FileName,

fmShareDenyNone);

ShowMessage(IntToStr(FSSize));

FSFree;

end;

另在IdGlobalProtocols中有个FileSizeByName()的函数。

你好,这边有一个示例代码,希望对你有所帮助。示例中的urlString,你可以下载之后看看是否跟打印信息大小一致。我这边是一致的。

p:所导入的包都是javanet下面的。

main方法中 直接调用这个函数即可。

static  int getNetWorkFile( ){

   String  urlString=">

以上就是关于【Python】os.walk的使用及获取文件夹下所有文件的大小全部的内容,包括:【Python】os.walk的使用及获取文件夹下所有文件的大小、如何用C语言获取文件的大小、linux下怎样得到文件的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9317753.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存