Python3.0 - 标记化和取消标记化

2024-05-21

我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段:

import io
import tokenize

src = 'foo="bar"'
src = bytes(src.encode())
src = io.BytesIO(src)

src = list(tokenize.tokenize(src.readline))

for tok in src:
  print(tok)

src = tokenize.untokenize(src)

虽然Python2.x中的代码不一样,但它使用相同的习惯用法并且工作得很好。但是,使用 python3.0 运行上面的代码片段,我得到以下输出:

(57, 'utf-8', (0, 0), (0, 0), '')
(1, 'foo', (1, 0), (1, 3), 'foo="bar"')
(53, '=', (1, 3), (1, 4), 'foo="bar"')
(3, '"bar"', (1, 4), (1, 9), 'foo="bar"')
(0, '', (2, 0), (2, 0), '')

Traceback (most recent call last):
  File "q.py", line 13, in <module>
    src = tokenize.untokenize(src)
  File "/usr/local/lib/python3.0/tokenize.py", line 236, in untokenize
    out = ut.untokenize(iterable)
  File "/usr/local/lib/python3.0/tokenize.py", line 165, in untokenize
    self.add_whitespace(start)
  File "/usr/local/lib/python3.0/tokenize.py", line 151, in add_whitespace
    assert row <= self.prev_row
AssertionError

我搜索了有关此错误及其原因的参考资料,但找不到任何内容。我做错了什么以及如何纠正?

[edit]

After 党派 https://stackoverflow.com/users/54982/partisann根据观察,在源中附加换行符会导致错误消失,我开始弄乱我要取消标记的列表。看来EOF如果令牌前面没有紧接着换行符,则会导致错误,因此删除它可以消除错误。以下脚本运行没有错误:

import io
import tokenize

src = 'foo="bar"'
src = bytes(src.encode())
src = io.BytesIO(src)

src = list(tokenize.tokenize(src.readline))

for tok in src:
  print(tok)

src = tokenize.untokenize(src[:-1])

src = 'foo="bar"\n'
你忘记换行了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3.0 - 标记化和取消标记化 的相关文章

  • Redis - 错误:值不是有效的浮点数

    我在 Redis 中有一个排序集 我试图通过在Python代码中使用zincrby来更新特定元素的计数器值 例如 conn zincrby usersSet float 1 user1 但它显示错误为 错误 值不是有效的浮点数 我在 cli
  • 如何在 Django Admin 的“更改”页面中显示内嵌上传的图像?

    我正在尝试在中显示内联上传的图像 变更列表 页面在 Django 管理中 这是我的代码如下 models py from django db import models class Product models Model name mod
  • 插入多行并返回主键时 Sqlalchemy 的奇怪行为

    插入多行并返回主键时 我注意到一些奇怪的事情 如果我在 isert 查询中添加使用参数值 我会得到预期的行为 但是当将值传递给游标时 不会返回任何内容 这可能是一个错误还是我误解了什么 我的sqlachemy版本是0 9 4 下面如何重现错
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 使用 pygtk3 将 GUI 窗口添加到 python opencv2 程序

    我已经使用Python和Opencv2完成了一个程序 现在 我想向我的程序添加一个 GUI 窗口 我对 PyGtk3 有一些经验 因此 我修改了代码以采用 PyGtk3 但是 我遇到了错误 因此 我尝试了一个简单的程序来找出实际的错误 我的
  • Django REST Framework:无法使用视图名称解析超链接关系的 URL

    我已经广泛研究了这个相当常见的问题 但没有一个修复对我有用 我正在 REST 框架中构建 Django 项目 并希望使用超链接关系 用户可以拥有许多独立的汽车和路线 路线是位置的集合 这些是我的序列化器 class CarSerialize
  • 不使用 graphviz/web 可视化决策树

    由于某些限制 我无法使用 graphviz webgraphviz com 可视化决策树 工作网络与另一个世界是封闭的 问题 是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化 py
  • 生产环境的 Flask-Login 与 Flask-Security

    我正在构建一个功能 供用户注册 登录 验证和授权自己 特别是使用 Python Flask 作为后端 我找到了一些解决方案 例如flask login and flask security 据我了解 flask login实际上并没有进行任
  • 自定义信号的声明

    在 Qt 中 我们可以通过将自定义信号设为静态变量来创建它们 然后我们使用self signame反而classname signame 这样就在类中创建了一个实例变量 我想了解这种模式之外的理论 这是我尝试过的一些伪代码 这些伪代码已记录
  • Tensorflow 到 ONNX 的转换

    我目前正在尝试转换我使用本教程创建的已保存 且正在工作 的 pb 文件 https github com thtrieu darkflow https github com thtrieu darkflow 到 onnx 文件中 我目前正在
  • Python:动态向对象添加字段

    我想知道是否可以动态向对象添加字段 例如 我希望能够添加如下内容 user object user first name John user last name Smith 当我在 Python 命令行解释器中执行该命令时 我得到 Attr
  • 计算二维笛卡尔坐标中不规则形状的边界

    我正在寻找一种计算不规则形状边界的解决方案 Lats take a look at Square example 如果我有Minimum x and y and Maximum x and y like MaxX 5 MinX 1 MaxY
  • 如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python

    Scikit learn 具有相当用户友好的用于机器学习的 python 模块 我正在尝试训练用于自然语言处理 NLP 的 SVM 标记器 其中我的标签和输入数据是单词和注释 例如 词性标记 而不是使用双精度 整数数据作为输入元组 1 2
  • pip-tools 的干净设置不会编译非常基本的 pyproject.toml

    使用全新的pip tools设置总是会导致Backend subprocess exited error pyproject toml project dependencies openpyxl gt 3 0 9 lt 4 在仅包含上述 p
  • Numba jitclass 不适用于 python 列表

    我在用python 3 6 and numba 0 36 这个问题有一个sister https stackoverflow com questions 48159360 numba custom stack class and pop f
  • 使用多行选项和编码选项读取 CSV

    在 azure Databricks 中 当我使用以下命令读取 CSV 文件时multiline true and encoding SJIS 似乎编码选项被忽略了 如果我使用multiline选项 Spark 使用默认值encoding那
  • 检测计算机何时解锁 Windows

    我用过这个优秀的方法 https stackoverflow com questions 20733441 lock windows workstation using python 20733443锁定 Windows 计算机 那部分工作
  • 在 Mac (Catalina) 上安装 PyGame 时出错 [重复]

    这个问题在这里已经有答案了 我一直在尝试将 PyGame 安装到 Catalina 上的 Mac 上 但不知道如何安装 我收到的错误消息是 SystemExit error command gcc failed with exit stat
  • 使用 Tweepy 获取推文时出错

    我有一个用于获取推文的 Python 脚本 在脚本中我使用该库 Tweepy 我使用有效的身份验证参数 运行此脚本后 一些推文存储在我的 MongoDB 中 有些则被 if 语句拒绝 但我仍然收到错误 requests packages u
  • Scrapy - 持续从数据库中获取要爬取的url

    我想不断地从数据库中获取要爬行的网址 到目前为止 我成功地从基地获取了 url 但我希望我的蜘蛛继续从该基地读取 因为该表将由另一个线程填充 我有一个管道 一旦爬行 工作 就会从表中删除 url 换句话说 我想使用我的数据库作为队列 我尝试

随机推荐

  • React Native Android:app:compileDebugJava 错误

    当我运行react native run android时 出现以下错误 我正在将其设置为在设备上运行 app compileDebugJava Users hello MediaFire apps test2 android app sr
  • Switch 语句,其中 value 为 Int 但 case 可以包含数组 [重复]

    这个问题在这里已经有答案了 我想将我的值数组作为 switch 语句的案例 我有一个值数组 let intValues 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 100 我想使用
  • SVG 转 JPG / PNG

    有没有工作模块可以convert a SVG image into像素格式如JPEG or PNG 看看蜡染工具包 具体来说是光栅化器 http xmlgraphics apache org batik tools rasterizer h
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • Java - toString 到 Color

    我一整天都在努力解决这个问题 基本上我做了一个 for 循环 将条目添加到数组列表中 其中一项是 颜色 变量 我已经用过random nextInt为颜色构造函数的红色 绿色和蓝色部分创建新值 我还设置了一个toString方法 这样我就可
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • Azure Active Directory - 自定义策略错误

    我已按照此处提供的指南在 Azure AD B2C 中设置了自定义策略 https learn microsoft com azure active directory b2c active directory b2c setup sf a
  • 如何在 xcode 中使用相同的 nib 文件创建多个窗口

    我有一个使用表格视图作为界面的 iPhone 应用程序 每次用户点击其中一个表格单元格时 我想向用户显示另一个窗口 然而 我推入导航控制器的窗口的用户界面非常相似 因此 我决定制作一个 通用 nib 文件 以便在该通用 nib 文件的文件所
  • 从 iFrame 嵌入 API 获取 YouTube 视频信息

    我正在使用 YouTube iFrame API 嵌入视频并创建一个简单的自定义播放器 我正在寻找视频标题 描述 等 无需再次调用 YouTube 即可获取信息 我无法找到任何相关信息 有什么想法 或者我是否需要额外拨打电话来获取视频信息
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • Pinterest 拒绝来自 Google App Engine 的访问 (403)

    使用 oauth accessToken 我可以通过以下方式检索用户的信息 https api pinterest com v1 me fields first name 2Cid 2Clast name 2Curl 2Cusername
  • 使用 Hibernate Criteria 过滤 Map 中的键和值

    我有以下持久类 public class Code ElementCollection targetClass CodeValue class MapKeyClass CodeProperty class JoinTable name co
  • c# 从另一个类中的另一个静态事件引发事件

    需要帮助从另一个班级调用事件 我有已声明事件的课程 public class MxPBaseGridView GridView public event AddNewItemsToPopUpMenuEventHandler AddNewIt
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 如何在 Perl 中循环访问类的所有方法?

    如何在 Perl 中循环访问一个类的所有方法 有没有关于 Perl 内省或反射的好的在线参考 Todd Gardner 使用 Moose 的建议很好 但他选择的示例代码并不是很有帮助 如果你正在检查一个非 Moose 使用类 你会这样做 u
  • 准确地从屏幕上的像素获取颜色并转换其颜色空间

    我需要从屏幕上的像素获取颜色并转换其颜色空间 我遇到的问题是 将值与数字色度计应用程序进行比较时 颜色值不相同 create a 1x1 image at the mouse position if let image CGImage CG
  • 将 React Native 集成到 Xamarin 项目中

    我的任务是看看是否可以将 React Native 集成到 Xamarin Forms 项目中 我认为我已经非常接近实现这一目标 但我不能肯定地说 我知道这是一个有点奇怪 倒退的解决方案 但无论如何我想尝试一下 看看我是否可以打败它 Int
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l