将 casper javascript 数据插入 CSV 文件
Insert casper javascript data to CSV file
我想将数据从 casper JS 传递到我当前使用的 CSV 文件
fs = require('fs');
fs.write('test.csv', "name, title", "a");
fs.write('test.csv', name.trim()+","+title.trim(), "a");
这是一个循环,所以有很多记录
但是打印到 CSV 文件并没有插入新行。它目前是这样写的,我只想要 2 列
Name Title
name1 name1 name2 title2 name3 title3
每次写入后添加一个换行符
fs.write('test.csv', "name, title\n", "a");
编辑
请注意,虽然这解决了换行(行)问题,但 CSV 不仅仅是在条目之间添加逗号。如果您的任何数据包含逗号,则需要将其转义。
https://en.wikipedia.org/wiki/Comma-separated_values
有一些库需要注意,例如 https://github.com/wdavidw/node-csv#readme -- 但如果您完全了解数据的行为方式,则可以继续您的解决方案。
添加换行符
fs.write('test.csv', name.trim()+","+title.trim()+"\n", "a");
CSV 各不相同,但通常都有四个特殊字符,
- 分隔符(逗号)
- escape char(通常
\
,用于在数据中使用时转义其他特殊字符
- 换行符(通常是
\n
,即换行符),
- wrapper,(通常用引号包裹每个值)
所以,如果您真的想要一个合适的 CSV,您可以这样做。
function escapeCSVData(text){
text = text.
replace("\", "\,"). // escape any escape chars
replace(",", "\,"); // escape commas
return '"'+text+'"'; // add quotes
}
fs.write('test.csv', escapeCSVData(name.trim())+","+escapeCSVData(title.trim())+"\n", "a");
我没有测试上面的内容,但这应该适合你。
编辑
我刚刚了解到逗号只是被引用,而不是被转义,所以函数实际上看起来像这样..
function escapeCSVData(text){
return '"'+text+'"'; // add quotes
}
我想将数据从 casper JS 传递到我当前使用的 CSV 文件
fs = require('fs');
fs.write('test.csv', "name, title", "a");
fs.write('test.csv', name.trim()+","+title.trim(), "a");
这是一个循环,所以有很多记录
但是打印到 CSV 文件并没有插入新行。它目前是这样写的,我只想要 2 列
Name Title
name1 name1 name2 title2 name3 title3
每次写入后添加一个换行符
fs.write('test.csv', "name, title\n", "a");
编辑
请注意,虽然这解决了换行(行)问题,但 CSV 不仅仅是在条目之间添加逗号。如果您的任何数据包含逗号,则需要将其转义。
https://en.wikipedia.org/wiki/Comma-separated_values
有一些库需要注意,例如 https://github.com/wdavidw/node-csv#readme -- 但如果您完全了解数据的行为方式,则可以继续您的解决方案。
添加换行符
fs.write('test.csv', name.trim()+","+title.trim()+"\n", "a");
CSV 各不相同,但通常都有四个特殊字符,
- 分隔符(逗号)
- escape char(通常
\
,用于在数据中使用时转义其他特殊字符 - 换行符(通常是
\n
,即换行符), - wrapper,(通常用引号包裹每个值)
所以,如果您真的想要一个合适的 CSV,您可以这样做。
function escapeCSVData(text){
text = text.
replace("\", "\,"). // escape any escape chars
replace(",", "\,"); // escape commas
return '"'+text+'"'; // add quotes
}
fs.write('test.csv', escapeCSVData(name.trim())+","+escapeCSVData(title.trim())+"\n", "a");
我没有测试上面的内容,但这应该适合你。
编辑
我刚刚了解到逗号只是被引用,而不是被转义,所以函数实际上看起来像这样..
function escapeCSVData(text){
return '"'+text+'"'; // add quotes
}