var z = ['111','222','333']
var x = ['zzz','yyy','xxx']
var fs = require('fs');
for(var y = 0; y < 3; y++)
fs.writeFile('z[y].json', x[y]);
尝试在 casper/node.js 中执行上述操作,最好的方法是什么。
研究了使用文件流等的可能性,但无法准确理解如何进行。
最佳答案
CasperJS 构建于 PhantomJS 之上,可以访问其 File System Module 。该模块提供流式版本和单调用版本。
单次调用
由于您拥有的数组已经在内存中,因此如果您只使用文件内容创建一个字符串并将其完整写入,可能不会太糟糕:
var fs = require('fs');
var x = ['zzz', 'yyy', 'xxx'];
var s = "";
for(var y = 0; y < 3; y++)
s + = x[y] + "\n";
fs.write('text.txt', s);
文件流
要使用文件流,您需要 open the stream first然后写入:
var fs = require('fs');
var x = ['zzz', 'yyy', 'xxx'];
var f = fs.open("text.txt", 'w');
for(var y = 0; y < 3; y++)
f.write('text.txt', x[y] + "\n");
f.close();
单次调用附加器
当然你也可以使用appender,但是效率很低,因为文件被打开和关闭多次:
var fs = require('fs');
var x = ['zzz', 'yyy', 'xxx'];
for(var y = 0; y < 3; y++)
fs.write('text.txt', x[y] + "\n", 'a');
将单个字符串放入多个文件
您似乎想将单个不同的字符串写入不同的文件中。您根本不需要流。只需循环使用第一个建议:
var fs = require('fs');
var z = ['111','222','333']
var x = ['zzz', 'yyy', 'xxx'];
for(var y = 0; y < 3; y++)
fs.write(z[y]+'.json', x[y]);
<小时/>
请注意,PhantomJS(和 CasperJS)的执行环境与 node.js 不同。您不能简单地在 CasperJS 或 PhantomJS 中使用节点模块。
关于javascript - 如何在CasperJS中编写基于数组的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31140771/