【问题标题】:os.listdir works in console but fails in a scriptos.listdir 在控制台中工作,但在脚本中失败
【发布时间】:2017-10-02 19:40:09
【问题描述】:

我的脚本使用 os.listdir 来获取目录列表,以便稍后用于批处理分析。

运行时

mypath='//home//user//Documents//data'
datalist=os.listdir(mypath)

在控制台中,我得到了正确答案。

但是,当我使用与脚本的一部分相同的代码时,python 会落在 datalist

FileNotFoundError: [Errno 2] No such file or directory: '//home//user//Documents//data//'

【问题讨论】:

  • 您的代码不符合错误信息。一个有斜线,另一个有反斜线。
  • 你确定这条路径存在吗?此外,如果您使用正斜杠(/),则不应将其加倍。只需使用mypath = '/home/user/Documents/data' 为防止混淆,请使用“r”,例如mypath = r'/home/user/Documents/data'mypath = r'\home\user\Documents\data'
  • 已编辑,抱歉
  • 您的错误消息返回的“文档”中有错字。路径拼写正确吗?
  • usint mypath=r'\home\user\Documents\data' 工作!这是做什么的?

标签: python


【解决方案1】:

引用自here

r'..' 字符串修饰符导致'..' 字符串被解释 字面意思。这意味着,r'My\Path\Without\Escaping' 将评估为 'My\Path\Without\Escaping' - 不会导致反斜杠转义 人物。先验等同于'My\\Path\\Without\\Escaping' 字符串,但没有 raw 修饰符。

this link 有一个简单示例的解释。

所以用

mypath = r'\home\user\Documents\data'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 2019-01-22
    相关资源
    最近更新 更多