【问题标题】:Problems while storing new files into a relative directory path?将新文件存储到相对目录路径时出现问题?
【发布时间】:2016-12-22 20:51:33
【问题描述】:

我正在从一些文件中检索如下:

with open(local_filename, 'wb') as f:
    f.write(r.content)
    f.close()
return local_filename

问题是所有文件都保存在我的 python 脚本的同一目录中。如何指定另一个相对目录来保存我的文件?我试过这个:

with open(os.path.join(path, local_filename, 'wb')) as f:

但是,它返回了我:

FileNotFoundError: [Errno 2] No such file or directory: '../files/resul_pe056_16.pdf/wb'

因此,将我下载的内容存储到相对路径中的正确方法是什么?

【问题讨论】:

  • 试试这个 open(os.path.join(path, local_filename), 'wb') as f:
  • 一切准备就绪,尝试了那个......我得到了SyntaxError: invalid syntax@Shijo
  • 它应该可以工作你写的语句有问题,它适用于我 open(os.path.join(path, local_filename), 'wb') as f: f.write ('dd') f.close()
  • @Shijo:似乎很明显 open(os.path.join(path, local_filename), 'wb') 与 OP 的 open(os.path.join(path, local_filename, 'wb')) 不同,后者也将 'wb' 开放模式加入到结果路径中(并将参数排除在调用之外open())。
  • 我投票结束,因为这只是一个错字。很明显,wb 被占用了路径的一部分。不过,不要因为问题的格式很好而投反对票。

标签: python python-3.x io relative-path


【解决方案1】:

这应该可以解决问题:

with open(os.path.join(path, local_filename), 'wb') as f:
    f.write(r.content)
return local_filename

问题是你在不同的地方有一个括号open(os.path.join(path, local_filename, 'wb'))。这实际上是连接路径、local_path 和“wb”,而“wb”是指open 而不是join

f.close() 也不是必需的,因为 with ... return 结构会为您完成此操作。

【讨论】:

  • 感谢您的帮助!
  • 我认为您可以更好地解释为什么它没有更早地工作。在没有任何解释的情况下发布工作代码会有所帮助,但最好用文字。特别是上面的 cmets 告诉了同样的事情,也因为它真的是一个微不足道的修复。最好带来比修复更多的东西(例如 f.close() 的东西),这样你的帖子就更有用了
  • 感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 2023-03-09
  • 2010-10-05
相关资源
最近更新 更多