使用Python转义Mac OSX中的正斜杠路径目录?

时间:2012-07-10 17:41:14

标签: python path directory escaping

这是我的第二篇文章,如果我做错了事我道歉 - 我会尽量简明扼要。

我做了一些搜索,大多数转义必须处理嵌入的JSON字符串 - 我的问题实际上是打开文件本身。

目前,我试图让我的代码尽可能通用,所以我正在使用:

file = open(os.path.expanduser(r'~/Desktop/Austin/Tweets/10_7_2012_12/09-Tweets.txt'), 'r')

问题在于,当解释器看到此代码时,它会看到" /"在文件名中,我认为它试图进入另一个目录。我通过删除" /"在文件名中输入:

file = open(os.path.expanduser(r'~/Desktop/Austin/Tweets/10_7_2012_1209-Tweets.txt'), 'r')

它加载得很好。

对所有这些文件执行此操作的问题在于,我有几百个包含数千条推文的文件,这有点不切实际。

所以我的问题是: 有没有办法在文件 name

中加载带正斜杠的文件

我看到很多方法都可以使用搜索按钮加载文件,但没有一种方法可以包含如何处理名称中的正斜杠...我已尝试过:

file = open(os.path.expanduser('~/Desktop/Austin/Tweets/10_7_2012_12\/09-Tweets.txt'), 'r')

file = open(os.path.expanduser('~/Desktop/Austin/Tweets/10_7_2012_12//09-Tweets.txt'), 'r')

一切都无济于事。

如果有人愿意教一个天真的本科生,那么对于如何处理正斜杠的解释将是受欢迎的。

我在Leopard上使用Mac OSX。我正在运行一个与Twitter Streaming API进行通信的网络爬虫;名称中的斜杠是使用" /"保存它们的结果。指定日期。

解: 您可以在Mac OSX上的文件名中使用正斜杠。 从文件系统的角度来看,/实际上是冒号,它被转换为/在Finder中。

下面的解释: 对于使用标准Mac文件名分隔符,冒号的Carbon图层来说,它是必需的。 Mac文件名在历史上一直被允许回到1984年.Mac用户也希望在GUI中看到冒号而不是斜线作为路径名分隔符(或者至少在2001年,当这种行为被建立时)。

2 个答案:

答案 0 :(得分:6)

我假设您正在使用类似Unix的操作系统,我的理解是在此类系统中的文件名中不允许使用正斜杠。如果您ls~/Desktop/Austin/Tweets/,您会看到什么?

答案 1 :(得分:2)

就个人而言,我宁愿在这些文件上运行批量重命名工具。文件名中的斜线通常是一个坏主意。

否则,答案是r'~/Desktop/Austin/Tweets/10_7_2012_12:09-Tweets.txt'。比照Special characters in OSX filename ? (Python os.rename)