假设我有一个名为test.txt的文本文件,其中包含以下内容:
Apples.Purchased: 100
Oranges.Purchased: 202
Bananas.Purchased: 140
如何在文本文件中搜索“Oranges.Purchased”,抓取其背后的数值并将其应用于javascript变量?
为了记录,我使用fs.write来保存数据:
var fs = require('fs');
fs.writeFile("test.txt", outputdata, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
答案 0 :(得分:1)
您可以以文本形式阅读该文件,然后使用正则表达式查找文本:
fs.readFile("test.txt", function(err, data){
var regex = /^Oranges.Purchased: ([0-9]+)/;
var result = regex.exec(data);
console.log(result[1]);
});
虽然你想要防弹(检查错误,不要只是假设你找到了文本等)。
但我一般不推荐这种做法。为什么不把文件写成JSON:
{
"Apples": {
"Purchased": 100
},
"Oranges": {
"Purchased": 140
}
"Bananas": {
"Purchased": 202
}
}
可以在没有任何字符串争论的情况下生成和解析;你可以序列化你的对象。
答案 1 :(得分:0)
解析为JSON是这里的理想解决方案。
然而,让我扮演恶魔倡导者并提供非json解决方案,它只是逐行扫描文件,将关键字与目标值进行比较。如果它们匹配,那么我们将值赋给变量。
当然,这假设数据格式严格按照您在此处所示。也就是说,对于每一行,都有一个(关键字:值)对。如果没有,这可能会提高。
target = 'Oranges.Purchased'
value_to_save = None
file = open('/tmp/contents.txt', 'r')
for i in file.readlines():
value_pair = i.split(':')
if value_pair[0].strip('') == target:
value_to_save = value_pair[1].strip('')
break
print value_to_save