问题描述
此代码有问题。我要完成的工作是获取要在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))
谢谢
解决方法
console.log()
总是要创建新行。如果要在同一行上,则必须在同一日志中执行。
const fs = require('fs');
let path = __dirname;
let files = fs.readdirSync(path);
for (var i = 0; i < files.length; i++){
var fileStats = files[i];
fs.stat(fileStats,function(err,stats){
console.log('Start:',fileStats,stats.size);
});
}
您可以使用process.stdout.write()
,它不会添加换行符,但是输出仍然会混乱。