gpt4 book ai didi

javascript - 如何使用CasperJS读取文件中的实时变化

转载 作者:行者123 更新时间:2023-12-03 07:36:43 25 4
gpt4 key购买 nike

我试图让我的 CasperJS 脚本读取外部 txt 文件 (abc.txt),并且需要在 CasperJS 进程的中间创建 abc.txt。

(对于某些第三方 api,必须使用“curl”创建 abc.txt,因此我调用了一个子进程来更新旧的 abc.txt)。

但是,abc.txt中的信息似乎被锁定了,无论我更改信息还是删除整个文件都没有关系。

有人知道 CasperJS 是否可以更具交互性吗?或者如果我需要更改整个脚本有什么建议吗?

(我试图从网站A获取问题,然后去网站B找到答案,然后在网站A中提交答案)

var casper = require('casper').create();
var fs = require('fs');
var data = fs.read('abc.txt');

casper.start();

casper.wait(5000, function () {
console.log('wait 5000 for editing the file');
});

casper.then(function (){
console.log(data);
});

casper.run();

最佳答案

如果 data.txt 的内容在脚本执行期间发生更改,这不会对保存该文件内容副本的变量产生任何影响。字符串值和文件内容之间从来没有直接联系。

如果要刷新字符串内容,需要再次读取该文件:

data = fs.read('abc.txt');

如果您需要等待文件的更改,那么您可以定期读取文件内容,看看它们是否同时发生变化。这可以通过 casper.waitFor() 来完成:

var casper = require('casper').create();
var fs = require('fs');
var data = fs.read('abc.txt');
var newData;

casper.start();
casper.waitFor(function _check(){
newData = fs.read('abc.txt');
return data !== newData;
});
casper.wait(1000); // additional wait to make sure that the file writing has finished
casper.then(function (){
console.log(newData);
});
casper.run();

关于javascript - 如何使用CasperJS读取文件中的实时变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com