【问题标题】:directory with slash or backslash in pycharm vs google colabpycharm vs google colab中带有斜杠或反斜杠的目录
【发布时间】:2021-05-21 04:50:29
【问题描述】:

我有一个关于使用斜杠或反斜杠的基本问题。

这是我的代码:

import os

path1 = r'c:\super'
path2 = r'c:/super'

print(os.path.basename(path1))
print(os.path.basename(path2))  

pycharm 的结果是:

super
super

google colab 的结果是:

c:\super
super

为什么它们在两个平台上的表现如此不同?

【问题讨论】:

  • 同一版本的python? colab的操作系统是什么?什么pycharm的?
  • pycharm 2020.2 社区,使用 python 3.6.1,colab 使用 chrome on window 使用 python 3.6.9。没关系吗?
  • colab 没有在您的浏览器中运行,它正在服务器上运行。什么样的服务器?看sys.platform
  • ic,它告诉我这是 linux,而不是我的平台我正在运行窗口,所以窗口和 linux 的行为不同,这就是我的问题的原因吗?
  • 是的。驱动器在 linux 中不表示为例如 `C:`

标签: python pycharm google-colaboratory backslash slash


【解决方案1】:

我认为是 python 编译器的“GCC 实现”问题。

我试过了:

import os
import sys

path=[]
path.append('c:\super')
path.append('c:\a\b\super')
path.append(r'c:\super')
path.append(r'c:\a\b\super')
path.append('c:\\a\\b\\super')
path.append('c:/a/super')
path.append(r'c:/a/super')

for p in path:
  print (os.path.basename(p))

print(sys.version)

合作报告

c:\super
c:\super
c:\super
c:\a\b\super
c:\a\b\super
super
super
3.6.9 (default, Oct  8 2020, 12:12:24) 
[GCC 8.4.0]

repl-it 上的相同代码(例如)get:

answer from repl.it

但是 3.8.5 / Intel 中的代码相同 answer from local Intel

【讨论】:

  • 如果不管python版本如何,你说'Intel gets'意味着你正在使用window来测试同样的东西?你和colab中的结果进行比较?所以你的结果和我的结果是一样的。而且我仍然不明白为什么window python上的反斜杠可以显示basename,但在colab中却不能?
  • colab 和 repl.it 都在 GCC - Gnu C 编译器上运行 - 两者(可能)都在类 Unix 操作系统中运行。在基于 Unix 的系统中,路径分隔符是 /(正斜杠) - 反斜杠 \ 被视为“正常”字符,因此基本名称包含 \(反斜杠)。
猜你喜欢
  • 2020-11-10
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 2018-08-30
  • 1970-01-01
  • 2013-11-14
相关资源
最近更新 更多