生成器无法按特定标识符分割字符串。蟒蛇2

2023-12-30

到目前为止,我已经找到了一种生成名称、字符串和额外字符串的方法。它适用于第二个但不适用于第一个?这很奇怪,因为格式非常相似。是因为它是多行吗?我以为if line == '+': pass将绕过该问题。

我在打印中添加了“\n”以显示差异

Input:

@first_name
AlongStringOfText
ThatHasNoSpaces
ButIsSeparatedByLineBreaks
+
{+iuhsfIUHSDFUi8849308989829
0990+-]@@@#*$()(@*$*)))***)@@**@#*u
sdfiuhnknwuiewi
+
@second_name
MoreTextThatCouldBeOnOneLine
+
+{~~~(@#UhuisdfiuhIUHDSFIUFHIl)}9823)88hafff
#empty line at end

当前脚本:

def organize(input_file):
    name = None
    body = ''
    extra = ''
    for line in input_file:
        line = line.strip()
        if line.startswith('@'):
            if name: 
                yield name, body, extra
                body = ''
                extra = ''
            name = line
        else:
            body = body + line
            if line == '+':
                pass
    print '\n'
    body,extra = body.split('+',1)

    yield name,body,extra

for line in organize(file_path):
    print line

Output:

('@first_name', 'AlongStringOfTextThatHasNoSpacesButIsSeparatedByLineBreaks+{+iuhsfIUHSDFUi88493089898290990+-]@@@#*$()(@*$*)))***)@@**@#*usdfiuhnknwuiewi+', '')


('@second_name', 'MoreTextThatCouldBeOnOneLine', '+{~~~(@#UhuisdfiuhIUHDSFIUFHIl)}9823)88hafff')

期望的输出:

('@first_name','AlongStringOfTextThatHasNoSpacesButIsSeparatedByLineBreaks','{+iuhsfIUHSDFUi88493089898290990+-]@@@#*$()(@*$*)))***)@@**@#*usdfiuhnknwuiewi')
('@second_name','MoreTextThatCouldBeOnOneLine','+{~~~(@#UhuisdfiuhIUHDSFIUFHIl)}9823)88hafff')

真正的问题是,你不是split屈服之前。所以像这样改变代码

    if line.startswith('@'):
        if name: 
            body, extra = body.split('+',1)
            yield name, body, extra
            body = ''
        name = line
    else:
        body = body + line
body, extra = body.split('+',1)
yield name, body, extra

另外,以下if条件对程序的输出没有影响

if line == '+':
    pass

所以,我在上面的代码中删除了它。

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

生成器无法按特定标识符分割字符串。蟒蛇2 的相关文章

随机推荐

  • 如何在Python 3中从字节缓冲区构造内存中的TarFile对象?

    是否可以使用包含 tar 数据的缓冲区在内存中创建 TarFile 对象 而无需将 TarFile 写入磁盘并再次打开它 我们获取通过套接字发送的字节 像这样的东西 import tarfile byte array client read
  • SQL Server 二进制(128)从小端转换为大端

    如何在 SQL Server 中将二进制 128 从小端转换为大端 尝试这样的事情 declare little binary 4 set little 0x02010000 select little bigEndian cast rev
  • 使用 SSH.NET 库从 .NET 连接到 MySQL

    我正在开发一个网页 ASP NET C 通过 SSH 查询远程服务器上的 MySQL 数据库 我正在使用这两个库 mysql connector net 6 9 7 和 Renci SshNet dll 我可以通过 SSH 连接使用远程服务
  • NineOldAndroids 动画不适用于 API > 10

    我在用NineOldAndroid执行动画的库 对于 API10 应用程序强制关闭 这是我的代码 import static com nineoldandroids view ViewPropertyAnimator animate imp
  • 如何阻止 Intellij 创建 src/main/java 和 src/main/scala-x 文件夹?

    我在 Intellij 15 0 2 中有一个仅用于 scala 编程的 SBT 项目 由于某种原因 该项目不断在我的项目中创建以下文件夹 src 主 java src main scala 2 10 src main scala 2 11
  • 如何获取从 PUT 方法传递的数据

    我正在为 Laravel 创建一个 API 我使用 PUT 方法来更新数据 我使用 PUT 方法通过 Postman 发送数据 在我的控制器中 我有一个空数组 如何访问传递的数据 在我的路线中 我有 Route put vehicletyp
  • 如何在 FastAPI 中上传 CSV 文件并将其转换为 Pandas Dataframe?

    我想将文件上传到 FastAPI 后端并将其转换为 Pandas DataFrame 但是 我似乎不明白如何使用 FastAPI 来做到这一点UploadFile https fastapi tiangolo com tutorial re
  • React Router Switch 和确切路径

    我读过这份文件反应路由器开关 https github com ReactTraining react router blob master packages react router docs api Switch md 我了解交换机和路
  • 周围物体算法

    我正在开发一款游戏 该位置可能只存在一个对象 x y where x and y are ints 例如 一个对象可能存在于 0 0 也可能不存在 但不可能同时存在多个对象 我正在尝试决定使用哪个 STL 容器来解决当前的问题以及解决此问题
  • iPhone 相机对焦

    我使用下面的代码来对焦 iPhone 相机 但它不起作用 我从Apple的AVCam示例代码中获取了这段代码 我做错了什么吗 有什么方法可以 检测iPhone是否对焦 void focusAtPoint CGPoint point AVCa
  • Chrome 有内置的调用堆栈吗?

    在 Visual Studio 中 我习惯于在任何断点处显示调用堆栈 Chrome 是否具有调用堆栈功能 可以让我查看断点之前的函数 如果没有 是否有替代方案 适用于 Chrome 的第三方解决方案 供开发人员用来查看哪些函数导致了断点 编
  • Microsoft SQL Server 中表的事务隔离级别

    这更多的是对我想法的确认 而不是一个问题 可以在 SQL Server 中以表为基础更改隔离级别 还是只能在会话级别上定义 更改 如下面的语句所示 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 那
  • 点击 NavigationLink 后如何执行操作?

    我的第一个视图中有一个加号按钮 看起来像一个 FAB 按钮 我想在点击 NavigationLink 中包含的某个步骤后隐藏它 到目前为止我有这样的事情 ForEach 0 lt 12 item in NavigationLink dest
  • Winforms ListView - 双击时停止自动检查

    如何使列表视图在双击某个项目时不自动检查该项目 我可以尝试挂钩 MouseDoubleClick 事件 并将 Checked 属性设置为 false 但这感觉有点像黑客 当实际检查某个项目时 我还会运行相当昂贵的计算 并且不希望此代码在双击
  • java中如何识别检查异常和非检查异常?

    在阅读有关异常的内容时 我总是会遇到受控异常和非受控异常 所以想知道如何区分哪个是什么 编辑 我想知道我是否创建任何异常类 那么如何创建为已检查或未检查的异常类 每个的意义是什么 All Throwables 除了以下子类java lang
  • 在未安装 Excel 的服务器上生成 Excel 文件

    我在用Microsoft Office Interop Excel并使用生成 Excel 文件SaveAs方法 这一切都可以在安装了 Excel 的计算机上正常运行 但是 我的服务器没有安装 Excel 如何生成我的文件 If you ge
  • 从 Shell 脚本将日期传递给 C 程序

    我想将用户以 YYYY MM DD HH24 MI SS 格式输入的日期传递给 C 程序 该程序进一步在数据库中输入条目 当我将命令行参数中输入的日期作为 2010 07 15 12 13 14 传递时 C 程序将其视为 2 个参数而不是
  • 当针对 ES5 / ES3 时,Typescript 会转译什么?

    我试图了解 Typescript 编译器何时会转译代码以使其与我指定的目标 ECMAScript 版本 ES5 或 ES3 兼容 例如 TSC 将转译for var int of intArray 很好 但它不转译Number isInte
  • 时间:2019-03-17 标签:c#EnumFunctionParameters

    作为后续这个问题 https stackoverflow com questions 492115 c enums as function parameters 如何调用函数并传入枚举 例如我有以下代码 enum e1 public voi
  • 生成器无法按特定标识符分割字符串。蟒蛇2

    到目前为止 我已经找到了一种生成名称 字符串和额外字符串的方法 它适用于第二个但不适用于第一个 这很奇怪 因为格式非常相似 是因为它是多行吗 我以为if line pass将绕过该问题 我在打印中添加了 n 以显示差异 Input firs