作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试迭代 inspect.stack()
以获取文件层次结构。
一个简单的例子:
for value in inspect.stack():
print value[1]
输出将是:
C:\xxx\ATE\Utilities\Simulator\Simulator.py
C:\xxx\ATE\Utilities\Simulator\Simulator.py
C:\xxx\ATE\Utilities\Simulator\serial.py
C:\xxx\ATE\Utilities\Serial\SerialHandle\trunk\SerialHandle.py
C:/xxx/ATE/DUTDrivers/DD_SimulatorExample/DD_Example_Simulator.py
现在我正在使用字符串操作删除文件名,并在我的软件中使用路径名。
问题:
为什么有些路径带斜杠(\),有些路径带反斜杠(/)?
注意:我知道我可以使用 replace
进行简单的字符串操作,将反斜杠替换为斜杠,或者只使用 os.path.normpath(path)
但我'我试图理解为什么 inspect.stack
模块以这种方式返回它?
最佳答案
看来PyCharm启动了DD_Example_Simulator.py
使用完整路径和正斜杠 (/)。
这就是为什么您只在 DD_Example_Simulator.py
中看到正斜杠的原因路径(其余路径由 Python 解释器构建,因此具有正确的 Windows 反斜杠)。附带说明:在 Windows 上使用正斜杠是完全可以的。好吧,至少我的 Windows 副本不介意正斜杠。
让我们使用 cmd.exe 来设置过期时间。
让我们创建两个文件。
第一:
// inspectso.py
import inspect
for value in inspect.stack():
print value[1]
第二:
// inspect_so.py
import inspectso
过期的最后一步:在cmd中运行这些命令:
e:\Temp>c:/Python27/python.exe E:/temp/inspect_so.py
E:\temp\inspectso.py
E:/temp/inspect_so.py
e:\Temp>c:/Python27/python.exe E:\temp\inspect_so.py
E:\temp\inspectso.py
E:\temp\inspect_so.py
e:\Temp>c:/Python27/python.exe inspect_so.py
e:\Temp\inspectso.py
inspect_so.py
我们可以看到inspect_so.py
的路径打印的内容与在命令行上传递的内容以及 inspectso.py
的路径相同。总是严重反斜杠。
关于python - spect.stack() 返回带有斜杠和反斜杠的路径值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21134455/
我是一名优秀的程序员,十分优秀!