我和一位同事一起工作,他有Ubuntu,而我有窗户。我们有一个json文件的数据集,其中包含一个写入的“路径”。他的道路是这样的:
'C:/Users/krock/Desktop/FIIT/BP/Ubuntu/luadb/etc/luarocks_test/modules/30log/share/lua/5.3/30log.lua'但这在Windows上行不通,我只是想
some_string.replace('/', '\\')但是这会导致用json编写的字符串如下所示:
'C:\\Users\\krock\\Desktop\\FIIT\\BP\\Ubuntu\\luadb\\etc\\luarocks_test\\data_all'在我的windows机器上,我无法读取(程序)这些路径,因为它会产生错误:
文件或目录不存在
有解决办法吗?
编辑:我尝试使用路径库中的路径,但是我发现另一个错误:
TypeError: WindowsPath类型的对象不能被JSON序列化
我找到了解决这个问题的方法是执行str( path (path_string)),但是结果是双引号中的路径。
发布于 2020-04-15 16:41:04
这个问题缺少代码示例,所以不能更具体,但一般来说,手动执行此操作很容易出错。考虑使用库,例如路径库。例如:
>>> from pathlib import Path
>>> Path('luarocks_test/modules/30log/share/lua/5.3/30log.lua')
PosixPath('luarocks_test/modules/30log/share/lua/5.3/30log.lua')在Windows上,实例化路径将为您提供一个WindowsPath。您还需要使用相对引用,而不是绝对引用,因为您的工作站上的路径将是不同的。
https://stackoverflow.com/questions/61233753
复制相似问题