我有一个包含条目的txt文件
indexUrl=http://192.168.2.105:9200
jarFilePath = /home/soumy/lib
如何从R读取此文件并获取jarFilePath
的值?
我需要这个设置.jaddClassPath()
...我有问题将jar复制到classpath,因为windows和linux中的斜杠不同
我想用
.jaddClassPath(dir("target/mavenLib", full.names=TRUE ))
但在Windows中
.jaddClassPath(dir("target\\mavenLib", full.names=TRUE ))
所以想从属性文件中读取jar的位置!!! 如果还有其他选择,请告诉我也
答案 0 :(得分:4)
我不知道包是否提供特定的界面。
如果没有,我首先使用read.table:
在数据框中加载数据myProp <- read.table("path/to/file/filename.txt, header=FALSE, sep="=", row.names=1, strip.white=TRUE, na.strings="NA", stringsAsFactors=FALSE)
sep="="
显然是分隔符,这将很好地分隔您的属性名称和值。
row.names=1
表示第一列包含您的行名,因此您可以通过这种方式索引数据属性以检索所需的每个属性。
例如:myProp["jarFilePath", 2]
将返回"/home/soumy/lib"
。
strip.white=TRUE
会删除您可能不关心的前导和尾随空格。
可以方便地将加载的数据框转换为命名向量,以便更清晰地检索属性值:myPropVec <- setNames(myProp[[2]], myProp[[1]])
。
然后从名称中检索属性值:myPropVec["jarFilePath"]
也将返回"/home/soumy/lib"
。
答案 1 :(得分:4)
截至2016年9月,CRAN拥有包properties。
它正确处理属性值中的=
(但在第一个=
符号后不处理空格。)
示例:
属性文件/tmp/my.properties
的内容:
host=123.22.22.1
port=798
user=someone
pass=a=b
R代码:
install.packages("properties")
library(properties)
myProps <- read.properties("/tmp/my.properties")
然后,您可以访问myProps$host
等属性,特别是myProps$pass
符合预期的a=b
。