比较R和Python中的路径名

时间:2013-06-15 20:25:55

标签: python r filepath

此问题出现后被删除:

使用Python,路径名可以用三种方式表示:

mypath = r"C:\folder\temp.shp"    
mypath = "C:\\folder\\temp.shp"    
mypath = "C:/folder/temp.shp"

路径名在R中的表达方式有哪些?

复制问题结束。我不能说有关Python的陈述的有效性,但是对SO的简单搜索没有得到R路径名(和特定于操作系统)问题的良好描述感到惊讶。 (然后我的部分书面答案与问题一起被删除。)

2 个答案:

答案 0 :(得分:2)

对于平台独立性,您可以使用正斜杠("C:/folder/temp.shp")或使用file.path(例如file.path('c:','folder','temp.shp')。后者特别适合与变量一起使用而不是{{1 }}

例如,您可以将根目录存储在每台计算机上paste的变量中,然后使用.Rprofile指向特定文件。

在Windows计算机中.Rprofile:file.path 在OS / X或Linux计算机上.Rprofile:.db <- "C:/Dropbox"

然后在你的代码中你会打电话:

.db <- "/home/foo/Dropbox"
@DWin已经指出了Windows特有的方法,我认为应该避免这种方法,因为它们不是平台无关的(并且它们对那些尚未学习字符转义的人来说更容易混淆。

答案 1 :(得分:1)

第三个版本适用于在CRAN上分发的所有3个特定于操作系统的版本。 (Windows版本会将正斜杠转换为反斜杠。) 第二个版本可以工作,但仅适用于Windows版本。第一个版本实际上没有任何反斜杠,因为在R中解析字符向量的方式,而是具有escape-F和escape-T,它们不是有效的目录分隔符。

Dirk说的话;

请注意.Platform$file.sep)返回目录分隔符的系统独立版本,并且看到@ AriB.Friedman已经指出?file.path可用于构造有效路径。