繁体   English   中英

在单行文本文件中添加数字后面的新行

add new line after number in single-line text file

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在文本文件中有一个巨大的HPBasic代码字符串,例如:

158! 159 SUBEXIT 160! 161 Prntr_available:! 如果打印机不是162,则无法进入测试菜单! 可用的; 结果只有打印机163如果条件$(15,2)[6,6] <>“*”那么! 打印机不可用164 Cond_error = 1 165 Prompt_user(“错误:打印机不可用;无法执行测试。”)

这些连续的数字是代码中的新行。 我如何迭代这个以在每个这些数字之前打印换行符以使其可读? 现在我有:

mystring = ('EnormousString')
myString.replace('1', '1\n')

这种作品。 有没有办法为此添加+=1 不知道该去哪里。

4 个回复

你可以这样做:

output = []
curline = 0
for token in s.split(' '):
  try:
    line = int(token)
    if line > curline:
      curline = line
      output.append('\n')
  except:
    pass
  output.append(token)

output_str = ' '.join(output).lstrip() # lstrip removes the leading \n

这并不是假设行号都比最后一行大(但可以添加),因为我认为BASIC只要求它大于前一行。 正如其他人所提到的,如果行中有更大的数字(由空格包围),这可能会中断。

这个def会做(下图)。 它要求所有连续的行分隔数按顺序出现,并且我要求每个行都有空格,以减少由于(例如)在前面的文本中出现的数字3而丢失信息的可能性。第3行分隔符。 为了防止行分裂“3”,由于某种原因发生在第3行分隔符之后,我使用了maxsplit = 1(即str.split([sep[, maxsplit]]) ),所以它只使用了第一个实例“ 3“:

def split_text(text):
    i, sep, tail = 1, '1 ', text
    while sep in tail:
        head, tail = tail.split(sep, 1)
        print(head)
        i += 1
        sep = ' ' + str(i) + ' '
    print(tail)

将其附加到文件应该是直截了当的。

这假定文本的第一部分将始终是行号,如果输入有效,则应该是行号。 它还假设行本身永远不会包含两个空格之间的下一个行号; 这不是一个很好的假设,但是如果不以某种方式集成HPBasic解析器,我认为没有太多的方法。

code = """158 ! 159 SUBEXIT 160 ! 161 Prntr_available: ! Cannot allow entry to Test Menu if printer is not 162 ! available; results only go to printer 163 IF Conditions$(15,2)[6,6]<>"*" THEN ! Printer is not available 164 Cond_error=1 165 Prompt_user("ERROR: Printer not available; cannot perform tests.")"""
line_number = int(code[:code.index(" ")])

lines = []
string_index = 0

while True:
    line_number += 1

    try:
        next_index = code.index(" " + str(line_number) + " ", string_index)
    except ValueError:
        lines.append(code[string_index:].strip())
        break

    lines.append(code[string_index:next_index].strip())
    string_index = next_index

print "\n".join(lines)
# 158 ! 
# 159 SUBEXIT 
# 160 ! 
# 161 Prntr_available: ! Cannot allow entry to Test Menu if printer is not 
# 162 ! available; results only go to printer 
# 163 IF Conditions$(15,2)[6,6]<>"*" THEN ! Printer is not available 
# 164 Cond_error=1
# 165 Prompt_user("ERROR: Printer not available; cannot perform tests.")

如果找到3位数,如何用正则表达式替换?

import re
mystring = '158 ! 159 SUBEXIT 160 ! 161 Prntr_available: ! Cannot allow entry to Test Menu if printer is not 162 ! available; results only go to printer 163 IF Conditions$(15,2)[6,6]<>"*" THEN ! Printer is not available 164 Cond_error=1 165 Prompt_user("ERROR: Printer not available; cannot perform tests.")'
print((re.sub(r"(\d{3})",r"\n\1", mystring)))

这将给出以下输出:

158 ! 
159 SUBEXIT 
160 ! 
161 Prntr_available: ! Cannot allow entry to Test Menu if printer is not 
162 ! available; results only go to printer 
163 IF Conditions$(15,2)[6,6]<>"*" THEN ! Printer is not available 
164 Cond_error=1 
165 Prompt_user("ERROR: Printer not available; cannot perform tests.")
1 使用 Stream Writer 在文本文件中添加数字

我正在使用 Stream Writer 类,并试图总结我的文本文件中的所有数字。 我的文本文件格式如下: 我想要做的是打印出数字的总和,但正在努力获取数字。 我正在考虑使用 for 循环来总结数字,但不确定从哪里开始只获取数字。 ...

2014-12-01 00:29:44 1 1448   c#/ .net
2 如何与PHP一起在文本文件中添加数字?

我目前有一个文本文件,如下所示: 我想做的是将第二列中的所有数字加在一起。 我该如何使用PHP? 我的实际文件比这个大得多。 *我要添加的内容。 任何帮助将不胜感激! 谢谢! ...

3 在文本文件中添加数字(python)

嗨我已经被赋予了从文本文件“1,3,5,7,9,11,13,15”中读取这些数字的任务,并将它们加在一起我将如何做到这一点? 到目前为止,我有: 但我收到这个错误: 谢谢 回答: ...

2014-01-26 16:38:58 3 10421   python
4 读取大的单行文本文件

我正在尝试读取存储为单行文本文件的大型html表。 文字是大约。 长度为8180万个字符,大小约为80mb。 我已经尝试过下面的代码,但是它挂了很长时间,太长了才能使用。 里面的数据是标准的html表构造。 &lt;table&gt;&lt;tr&gt;&lt;td&gt;sometex ...

6 从文本文件中逐行读取有理数,并在每行中添加数字,其中某些行输入错误

我想编写从文本文件读取有理数并逐行添加它们的Java代码。 数字以“和”分隔。 但是,行的总和输入错误。 这些是文本文件的内容: 我已经编写了一些代码,但是当输入错误时它会终止。 我觉得可以改善 在输出中,我希望在跳过错误输入的行的同时,添加每行具有正确输入的行。 ...

2019-04-27 05:46:37 3 45   java
7 替换文本文件中单词后面的数字

我似乎对如何使用字符串、整数和浮点数有点困惑。 我正在尝试读取 .txt 文件名 TEST.txt。 这包含: 我想为总数添加一个值。 我正在尝试这样: 我希望代码会像这样写入 txt: 相反,我最终得到了这个错误:TypeError: replace() argument 2 must ...

8 从文本文件Java向arraylist添加数字

我的数据文件如下所示(第一列x;第二y;第三类型): 我试图将x和y坐标保存在两个不同的点数组列表中,具体取决于它们的类型。 它没有显示任何错误,但是也没有做正确的事。 总值应该是83,因为我有83对xy坐标,但总数为240。有什么帮助吗? ...

9 MATLAB-在文本文件上添加数字

我需要使用“ importdata”来运行脚本,但是我的文件底部的列比顶部的列多,如下所示: 例1 它以4列开始,以5)结束,因此当我使用importdata时,它将形成一个具有4列的矩阵,从而损坏了我的文件。 我想做的是在第一个数据行(或第二个文本行)的末尾添加任意数字,最好是 ...

2013-06-22 19:22:49 1 110   matlab
10 在bash中循环浏览数字文本文件并逐行添加数字

我在文件夹中有一组文本文件,如下所示: ..依此类推(假设行数固定,但文本文件数未知)。 我正在寻找的结果文件是所有行的总和: 我该如何在bash中实现这一目标? 不使用Python等 ...

2019-04-01 23:41:50 1 55   bash
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM