我在Jupyterlab的一个大代码中有os.path.join
命令。我放了一个try-except块&发现它没有加入任何东西。但是,当我将相同的命令放在单独的Jupyterlab笔记本中时,它会正常连接。为什么如此?请给我点光。
My path is'./tmp/deeptest-trpo/'
def get_monitor_files(path: str) -> List[str]:
##print(path) gives ./tmp/deeptest-trpo/ i.e. without the ''. Is this the cause?
try:
os.path.join(path, "*" + "monitor.csv")
except:
print('not joining') #always reaches here
return glob(os.path.join(path, "*" + "monitor.csv"))
但是当我单独操作时,它工作正常!
import os
pathh='./tmp/deeptest-trpo/'
os.path.join(pathh, "*" + "monitor.csv")
###OUTPUT IS'./tmp/deeptest-trpo/*monitor.csv'
如果有帮助的话,这个get_monitor_files是一个内置函数。我提取了其中的一部分来分析上述差异。
在M1 mac上使用python 3.8.9,我没有得到任何错误:
def get_monitor_files(path: str) -> 'list[str]':
try:
p = os.path.join(path, "*" + "monitor.csv")
except Exception as e:
print(e)
else:
print(p)
get_monitor_files("./tmp/deeptest-trpo/")
,它打印./tmp/deeptest-trpo/*monitor.csv
没有问题。我将处理异常,这样您就可以看到哪里出了问题。
path
虽然类型暗示为字符串,但实际上并没有作为字符串传递,当您尝试在"*"
和变量path
上使用+
运算符时,这不是字符串,它失败了。但这是一个完整的猜测,没有看到错误。