标签: filesize

为什么 Python 发现的文件大小与 Windows 不同?

我正在创建一个基本的 GUI 作为一个大学项目。它扫描用户从他们的电脑上选择的硬盘驱动器,并为他们提供有关该硬盘的信息,例如其中的文件数量等......

我的扫描功能的一部分是,对于驱动器上的每个文件,获取所述文件的大小(以字节为单位),并将其添加到运行总数中。最后,将这个数字与 Windows 总数进行比较后,我总是发现我的 Python 脚本在驱动器上找到的数据少于 Windows 所说的数据。

下面是代码...

import os

overall_space_used = 0

def Scan (drive):
    global overall_space_used

    for path, subdirs, files in os.walk (r"" + drive + "\\"):
        for file in files:
            overall_space_used = overall_space_used + os.path.getsize(os.path.join(path,file))
    print (overall_space_used)
Run Code Online (Sandbox Code Playgroud)

当在我的 HDD 上执行此操作时,Python 表示总共有 23,328,445,304 字节的数据 (21.7 GB)。但是,当我在 Windows 中进入该驱动器时,它显示有 23,536,922,624 字节的数据 (21.9 GB)。为什么会有这样的差异呢?

我手动计算了它,并使用 Windows 用于从字节转换为吉比字节 ( gibibytes = bytes / 1024**3) 的相同公式,我仍然少了 0.2 GB。为什么 Python 发现的数据较少?

file filesize python-3.x

3
推荐指数
1
解决办法
1297
查看次数

带有 RotatingFileHandler 的 Python 3 记录器超出 maxBytes 限制

我使用以下代码来限制日志文件的大小(最小示例):

import logging
from logging.handlers import RotatingFileHandler

# Set up logfile and message logging.
logger = logging.getLogger("Logger")
logger.setLevel(logging.ERROR)
# Create the rotating file handler. Limit the size to 1000000Bytes ~ 1MB .
handler = RotatingFileHandler("test.log", mode='a', maxBytes=1000000, encoding=None, delay=0)
handler.setLevel(logging.ERROR)
# Create a formatter.
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Add handler and formatter.
handler.setFormatter(formatter)
logger.addHandler(handler)

for l in range(1000):
    logger.error("test" * 1000)
Run Code Online (Sandbox Code Playgroud)

但是文件大小超出了 1MB 的限制并继续记录。我不明白我做错了什么。有没有办法选择不同的参数来正确限制日志文件的大小?

python logging filesize limit filehandler

3
推荐指数
1
解决办法
1万
查看次数

减小图 (R) 的文件大小(plotly)

我使用 ggplotly 在 R 中创建了一个地图。要创建链接,其大小需要为 524kb 或以下,但目前为 1.2Mb。有什么好的方法可以减少文件大小以便我可以导出吗?或者这完全不现实?

r filesize ggplotly r-plotly

3
推荐指数
1
解决办法
897
查看次数

如果文件正在更改(即正在下载的文件),Powershell 无法正确读取文件大小

我正在编写一个 Powershell 脚本,旨在在一个或多个文件下载完成后关闭 Windows 计算机(笔记本电脑/PC)(为了举例说明,我们假设这里有一个大文件)。

简而言之,我们每 x 秒读取整个下载文件夹的大小,并比较之前和之后的延迟大小。如果最近一段时间没有变化,则说明下载要么完成,要么卡住,这两种情况都会导致关机。

给出以下脚本(尺寸获取器在某些时候可以是一个独立的函数,是的):

#Powershell5
#Major  Minor  Build  Revision
# -----  -----  -----  --------
# 5      1      19041  1320  

$downloadDir = "C:\Users\edi\Downloads"

while (1) 
{
    $s1 = Get-ChildItem -Path $downloadDir | Measure-Object -Property Length -Sum | Select-Object Sum
    write-host "S1:" $s1.sum

    # this 3 seconds time is just for testing purposes; in real case scenario this will most
    # likely be set to 60 or 120 seconds.
    Start-Sleep -s 3

    $s2 = Get-ChildItem -Path $downloadDir …
Run Code Online (Sandbox Code Playgroud)

powershell ntfs filesize

3
推荐指数
1
解决办法
874
查看次数

为什么Flex编译器会在完全相同的源代码的连续编译中生成不同的文件大小?

我正在使用命令行编译器构建SWF mxmlc.exe.编译器将输出文件大小写为stdout的一部分.如果我连续多次运行编译器而不更改实际的源代码,我会看到文件大小一次上下跳动几个字节.

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28443 bytes)

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28442 bytes)

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28440 bytes)

C:\>mxmlc.exe Gallery.as
C:\Gallery.swf (28442 bytes)
Run Code Online (Sandbox Code Playgroud)

我想不出为什么会出现这种情况.即使我每次都删除输出文件,重新生成的文件大小仍然以这种方式变化.

有什么想法吗?

apache-flex compiler-construction filesize actionscript-3

2
推荐指数
1
解决办法
514
查看次数

使用OpenCV时,巨大的apk文件大小

我正在使用OpenCV构建原型应用程序.该应用程序目前没有做任何事,但其apk文件大小为6MB.大小是普通应用程序大小的10倍.有没有办法减少这个尺寸?

更新:我发现只要我在JNI/C++中使用Android原生相机和OpenCV接口,文件大小可能取决于您在库中使用的方法.目前我的测试应用程序使用简单的过滤器大小为700K.

android opencv filesize

2
推荐指数
2
解决办法
4741
查看次数

filesize()没有显示实际大小

可能重复:
PHP - 获取目录的大小

我在一个目录中有5个文件,它显示文件大小= 4096但是当我删除4个文件并且只剩下1个文件时,它仍然显示相同的大小.这就是我如何获得文件大小

echo filesize("user_files/".$uid."/".$rs['DirectoryName']);
Run Code Online (Sandbox Code Playgroud)

php filesize

2
推荐指数
1
解决办法
762
查看次数

MongoDB GridFS文件大小适用于相对较小的文件

我正在做一些测试,看看我们是否可以在MongoDB上使用GridFS来存储未来应用程序的文件; 我正在使用10gen的C#驱动程序将80Mb文件"上传"到数据库中.

第一次添加很好,花了大约3秒钟,这对我的测试机器来说并不算太糟糕; 然而,未来相同文件的添加需要更长时间,最多30秒,MongoDB最终告诉我内存耗尽并崩溃.

在系统崩溃命名dbaseName.0到dbaseName.7之前,添加10个文件,大小为80Mb会导致为我的数据库创建8个文件,文件大小从文件0到5从16Mb到512Mb呈指数级增长,然后文件6和7都是512MB.

这些文件的价格低于2Gb,显然第10次添加文件需要dbase超过2Gb,这超出了我的32位测试版本的限制.

为什么存储800Mb的文件需要超过2Gb?有没有我错过的地方?

MongoDB是否经常在RAM中保存整个GridFS?如果是这样的话,磁盘有什么意义呢?如果我的生产服务器上只有32Gb的RAM,那么我只能在GridFS中存储32Gb吗?

我在MongoGridFS对象上使用了EnsureIndexes,并检查了显示为GridFS创建索引的数据库,所以Mongo不应该尝试将整个数据存储区放入RAM中吗?

MongoDB满足我们的所有需求,但我们需要它能够容纳大型文件集; 我错过了一些明显的东西吗

堆栈跟踪:

Mon Oct 15 11:57:15 [conn15] insert busyNow.fs.chunks keyUpdates:0 locks(micros) w:112892 113ms
Mon Oct 15 11:57:15 [conn15] MapViewOfFileEx for /data/db/busyNow.7 failed with errno:8 Not enough storage is available to process this command. (file size is 536608768) in MemoryMappedFile::map

Mon Oct 15 11:57:15 [conn15]  busyNow.fs.chunks Fatal Assertion 16166
Mon Oct 15 11:57:17 [conn15] mongod.exe  ...\src\mongo\util\assert_util.cpp(124)                               mongo::fassertFailed+0x75
Mon Oct 15 11:57:17 [conn15] mongod.exe  ...\src\mongo\util\mmap_win.cpp(211)                                  mongo::MemoryMappedFile::map+0x4ce
Mon Oct 15 11:57:17 [conn15] mongod.exe …
Run Code Online (Sandbox Code Playgroud)

storage filesize mongodb gridfs

2
推荐指数
1
解决办法
2906
查看次数

如何在当前目录中输出空文件的名称?

我正在尝试检查我的文件夹中是否为空(0字节)的文件.我有大约1200个文件,所以Perl将使这个任务非常容易:)

到目前为止,这是我的代码,但它似乎不起作用.(它只列出了所有文件.)任何人都可以教我做错了什么吗?谢谢!

#!/usr/bin/perl
@files = glob('*');
if ((-s @files) == 0) {
    print"@files\n";
}
Run Code Online (Sandbox Code Playgroud)

perl glob filesize

2
推荐指数
1
解决办法
227
查看次数

文件大小以ls为单位?

有没有一种方法或参数可以使bash命令“ ls”以位显示文件大小?我知道“ ls -lh”会显示文件的大小,但以字节,千字节等为单位。或者任何其他可以用于linux的bash命令,可以这样做?

linux bash ls filesize

2
推荐指数
1
解决办法
5365
查看次数