鱼C论坛

 找回密码
 立即注册
查看: 1479|回复: 7

[已解决]2月份运行过的代码,今天发现不能运行了,请大神帮忙看看有哪些可能的原因呢?

[复制链接]
发表于 2020-3-14 22:57:48 | 显示全部楼层 |阅读模式
5鱼币
这是代码:
  1. # coding:utf-8
  2. import shapefile

  3. w = shapefile.Writer(shapefile.POINT)
  4. w.autoBalance = 1
  5. w.field('x', 'C')
  6. w.field('y', 'C', '40')
  7. w.field('v', 'C', '40')
  8. w.point(116, 6, 6)
  9. w.record(116, 6, 6)

  10. w.save('point.shp')
复制代码


下面是报错:
  1. Traceback (most recent call last):
  2.   File "D:/PythonProjects/mobai/debug/test_pyshp.py", line 10, in <module>
  3.     w = shapefile.Writer(shapefile.POINT)
  4.   File "D:\Anaconda3\lib\site-packages\shapefile.py", line 1057, in __init__
  5.     self.shp = self.__getFileObj(os.path.splitext(target)[0] + '.shp')
  6.   File "D:\Anaconda3\lib\ntpath.py", line 202, in splitext
  7.     p = os.fspath(p)
  8. TypeError: expected str, bytes or os.PathLike object, not int
复制代码


请各位大佬帮我看一下,代码思路就是利用pyshp库完成一个shape文件的写入和保存工作。拜托
最佳答案
2020-3-14 22:57:49
可能是等式[]和‘ ’有更新所以w=。。。。不成例

最佳答案

查看完整内容

可能是等式[]和‘ ’有更新所以w=。。。。不成例
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-14 22:57:49 | 显示全部楼层    本楼为最佳答案   
可能是等式[]和‘ ’有更新所以w=。。。。不成例
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-14 23:03:03 | 显示全部楼层
有哪些可能的原因会·造成这种情况出现呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-14 23:04:58 | 显示全部楼层
这个是类型错误 不是什么别的啊
类型错误:应为str、bytes或os.PathLike对象,而不是int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-15 11:59:52 | 显示全部楼层
admintest166 发表于 2020-3-14 23:04
这个是类型错误 不是什么别的啊
类型错误:应为str、bytes或os.PathLike对象,而不是int

传入的是一个路径,肯定就是字符串啊,所以怎么会是整形呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-15 12:18:12 | 显示全部楼层
这是os模块里面引发错误的地方
  1.     if isinstance(path, (str, bytes)):
  2.         return path

  3.     # Work from the object's type to match method resolution of other magic
  4.     # methods.
  5.     path_type = type(path)
  6.     try:
  7.         path_repr = path_type.__fspath__(path)
  8.     except AttributeError:
  9.         if hasattr(path_type, '__fspath__'):
  10.             raise
  11.         else:
  12.             raise TypeError("expected str, bytes or os.PathLike object, "
  13.                             "not " + path_type.__name__)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-15 12:18:57 | 显示全部楼层
wangka 发表于 2020-3-14 23:36
可能是等式[]和‘ ’有更新所以w=。。。。不成例

没太懂,请说明白一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-15 12:33:03 | 显示全部楼层
xsywa 发表于 2020-3-15 12:18
没太懂,请说明白一点

感谢,我找到答案了,应该是模块对于这个类已经更新了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 10:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表