Puppeteer + NodeJS 操作本地文件
昨天终于实现了用 Puppeteer
模拟人工操作,将本地文章自动发布到微信公众号。实现过程,学习了很多 Puppeteer+NodeJS
的知识点。把这些笔记分享在这(都是些零散笔记),希望能帮到有需要的人。
异步读文件
var fs = require('fs'); fs.readFile('sample.txt', 'utf-8', function (err, data) { if (err) { console.log(err); } else { console.log(data); } });
同步读文件
除了标准的异步读取模式外,fs也提供相应的同步读取函数。同步读取的函数和异步函数相比,多了一个 Sync 后缀,并且不接收回调函数,函数直接返回结果。
用 fs 模块同步读取一个文本文件的代码如下:
var fs = require('fs'); var data = fs.readFileSync('test.txt', 'utf-8'); console.log(data);
获取文件后缀名/拓展名
path 模块,NodeJS 自带的模块
var path=require('path'); var extname=path.extname("123.html"); //获取文件的后缀名 console.log(extname); //返回 .html
下面例子,返回 .md
const extname= path.extname(“guozh.md");
console.log(extname)
判断文件是不是图片
paths_array = [ "/home/user/website/index.html", "/home/user/website/style.css", "/home/user/website/bootstrap.css", "/home/user/website/main.js", "/home/user/website/contact_us.jpg" ] paths_array.forEach(filePath => { if (path.extname(filePath) == “.jpg") console.log(filePath); });
获取文件名
path.basename('/foo/bar/baz/asdf/quux.html') // returns ‘quux.html'
如果不想带后缀名/拓展名,使用如下方法
path.basename(fpath, path.extname(fpath)); //返回 quux
读取文件夹下每个文件内容
//获取文件夹下所有文件 const files = fs.readdirSync(dirPath); //循环遍历读取每个文件 for(const file of files){ //获取文件拓展名判断 const extname=path.extname(file); //判断文件格式类型 if(extname == ".md"){ //文件标题 title = path.basename(file, path.extname(file)); //获取文件的绝对路径 filePath = path.join(dirPath,file); //文件内容 contentMd = fs.readFileSync(filePath,"utf-8"); return; } }
行,都是些代码案例,我为了实现某些需求找出来的,通过它们,举一反三。