【问题标题】:Getting paths as user input Python 3获取路径作为用户输入 Python 3
【发布时间】:2013-03-03 19:49:14
【问题描述】:

我希望用户能够为我的程序键入路径作为参数
该程序应适用于所有操作系统...
直到现在我使用 x=input("...") 并将这个 x 解析为我的路径
但是在 Unix 中它更复杂,如果我从 ~/a/c/b 运行我的程序并且我希望参数是目录 'a',我应该输入 ../../ ?
为了获得正确的路径,我应该在 Unix 中写什么...?
或者是否有另一个模块可以用来在上面的模板中获取用户路径?

谢谢!

【问题讨论】:

  • 你有什么问题?你试过什么?
  • 我在问如何将这些路径作为完整路径...我应该使用 input() 吗? raw_input() 是否有更好的输入路径处理模块?
  • 您的意思是要将相对路径转换为绝对路径吗?你可以使用os.path.abspath
  • 在python 2中,“input”会将4/2视为2。你不应该在python 2中使用input。为什么你需要做任何处理?您正在尝试解决从未遇到过的问题。
  • 我认为绝对路径就是答案。谢谢!

标签: python


【解决方案1】:

您不应使用诸如../../ 之类的相对路径,因为您可能永远不知道用户从何处运行您的应用程序。如果您的程序在~/a/c/b 中并且您希望参数是目录a,那么您应该只使用~/a 作为参数。

至于编写相同的代码以在所有操作系统上运行,您应该使用诸如os.path.joinos.path.normpath 之类的东西。有关如何在 python here 中处理路径的更多信息。

【讨论】:

  • 当我在 Unix 中键入任何 '/' 时,我得到 SyntaxError,它不会在 Windows 中发生,仅在 Unix 中,当我使用 input() 时会发生,当我使用 raw_input() 时它不会在 Unix 中不会发生,但我在 Windows 中遇到错误
  • 你为什么要谈论inputraw_input?如果你想使用命令行参数,你不必使用这两个函数中的任何一个。阅读这个 SO 问题,了解如何在 python stackoverflow.com/questions/1009860/… 中使用命令行参数
  • 当用户不提供参数或无效参数时,我希望用户在 CMD 中输入参数,这就是为什么我需要 input()/raw_input()
猜你喜欢
  • 2016-04-30
  • 2018-06-23
  • 2018-05-06
  • 2017-04-18
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
相关资源
最近更新 更多