[小白] 请教个 Python import 的问题

2018-05-22 20:43:46 +08:00
 q9REUgpVVCU77pWj

是这样的,想做一个中文名生成工具。

Toolbox
  |--cn_name.json
  |--g.py

其中 cn_name.json 是我根据大量真人姓名提取出的特征数据,包括使用频次、性别倾向、用于中间字还是尾字等等。
然后 g.py 里打开上述 json 文件,并执行生成。


然后在B 路径的其它文件中,我

sys.path.append(root)
from Toolbox.g import ChineseName

,运行后会提示当前目录下没有 cn_name.json ,我理解它是在B 路径下找不到这个 json,但这到底该用啥姿势载入啊?


我是美工,各位多担待。

1597 次点击
所在节点    Python
3 条回复
Arnie97
2018-05-23 00:30:20 +08:00
因为“打开文件”这个操作并不是按照 sys.path 来找的,而是只有当前路径。导入模块才会在 sys.path 里查找。

import os.path
here = os.path.abspath(os.path.dirname(__file__))
json_path =os.path.join(here, 'cn_name.json')
Sylv
2018-05-23 00:32:40 +08:00
g.py 里这样获取 cn_name.json 的路径:
toolbox_path = os.path.dirname(os.path.abspath(__file__))
cn_name_path = os.path.join(toolbox_path, "cn_name.json")
q9REUgpVVCU77pWj
2018-05-23 01:31:52 +08:00
搞定了 感谢两位

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/456950

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX