9

这是我的第二篇文章,如果我做错了什么,我深表歉意——我会尽量简洁。

我做了一些搜索,大多数转义必须处理嵌入的 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 流 API 通信的网络爬虫;名称中的斜线是用“/”保存它们以指定日期的结果。

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

Kindall 的解释如下: Carbon 层是必需的,它使用标准的 Mac 文件名分隔符、冒号。历史上允许在 Mac 文件名中使用斜杠可以追溯到 1984 年。Mac 用户还希望看到冒号,而不是斜杠,作为 GUI 中的路径名分隔符(或者至少在 2001 年,当这种行为被制定时)。

4

2 回答 2

6

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

于 2012-07-10T17:57:44.997 回答
2

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

否则,答案是r'~/Desktop/Austin/Tweets/10_7_2012_12:09-Tweets.txt'。参看。OSX 文件名中的特殊字符?(Python os.rename)

于 2012-07-11T15:58:23.180 回答