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;
     }
}

行,都是些代码案例,我为了实现某些需求找出来的,通过它们,举一反三。

Puppeteer笔记

posted @ 2022-05-30 10:28  芒果鱼  阅读(409)  评论(0编辑  收藏  举报