[英]Escaping a forward slash path directory in Mac OSX using Python?
这是我的第二篇文章,如果我做错了什么,我道歉 - 我会尽量简明扼要。
我做了一些搜索,大多数转义必须处理嵌入的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')
它装得很好。
对所有这些文件执行此操作的问题在于,我有几百个包含数千条推文的文件,这有点不切实际。
所以我的问题是:有没有办法在文件名中加载带正斜杠的文件?
我看到很多方法用搜索按钮加载文件,但没有包括如何处理名称中的正斜杠...我试过:
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')
一切都无济于事。
关于Python如何处理正斜杠的解释将受到欢迎,如果有人关心教一个天真的本科生。
我在Leopard上使用Mac OSX。 我正在运行一个与Twitter Streaming API通信的网络爬虫; 名称中的斜杠是使用“/”保存它们以指定日期的结果。
解决方案:您可以在Mac OSX上的文件名中使用正斜杠。 从文件系统的角度来看,/实际上是一个冒号,它被转换为/在Finder中。
Kindall的解释如下:碳层是必要的,它使用标准的Mac文件名分隔符,冒号。 从历史上看,Mac文件名中的斜线可以追溯到1984年.Mac用户也希望在GUI中看到冒号而不是斜线作为路径名分隔符(或者至少在2001年,当这种行为被建立时)。
我假设您使用的是类Unix操作系统,我的理解是这种系统中的文件名中不允许使用正斜杠。 你看到了什么,如果你ls
在~/Desktop/Austin/Tweets/
?
就个人而言,我宁愿在这些文件上运行批量重命名工具。 文件名中的斜杠通常是个坏主意。
否则,答案是r'~/Desktop/Austin/Tweets/10_7_2012_12:09-Tweets.txt'
。 比照 OSX文件名中的特殊字符? (Python os.rename)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.