【发布时间】:2020-09-16 20:02:25
【问题描述】:
我在处理这段代码时遇到了问题。我想要完成的是获取文件名和大小的列表以在 STDOUT 的同一行上打印。目前,我正在获取文件名列表,然后是大小列表,但我希望大小与名称一起显示。我更熟悉如何在 Python 中做到这一点,我很惊讶在 JavaScript 中做到这一点有多难。因此,如果您不仅可以帮助我更正我的代码,还可以帮助我了解代码在 JS 中是如何工作的,那么将不胜感激。代码如下:
const fs = require('fs');
let path = __dirname;
let files = fs.readdirSync(path);
for (var i = 0; i < files.length; i++){
var fileStats = files[i];
console.log("Start: " + fileStats);
fs.stat(fileStats, function(err, stats){
console.log(stats.size);
});
}
为了比较,这就是 Python 中的代码的样子
import os
import os.path
path = os.getcwd()
contents = os.listdir(path)
print(path)
for file in contents:
size = os.path.getsize(file)
print("File: {0}, Size: {1} Bytes".format(file, size))
谢谢
【问题讨论】:
-
在记录统计信息的同一回调中记录文件名。
.stat是异步的,因此不会在您的文件名日志之后立即调用回调,这就是为什么您在之后打印尺寸的原因
标签: javascript python node.js filesystems stdout