【发布时间】:2015-04-26 20:10:43
【问题描述】:
对于我事先不知道 python 如何处理字符串,我深表歉意。我有一个至少 1000 行长的 .txt 文件。如下所示
:dodge
1 6 some description string of unknown length
E7 8 another description string
3445 0 oil temp something description voltage over limit etc
:ford
AF 4 description of stuff
0 8 string descritiopn
我想要做的基本上是放一个“;”在每个字符串之前,所以我最终会得到如下
:dodge
1 6 ;some description string of unknown length
E7 8 ;another description string
3445 0 ;oil temp something description voltage over limit etc
:ford
AF 4 ;description of stuff
0 8 ;string descritiopn
我的想法是打开文件,搜索“:”字符,下一行,转到“”字符,转到下一个“”字符并写一个“;”。另一个想法是转到文本文件中的“/n”字符如果下一个字符!=“:”然后寻找第二个空格 导入系统 导入文件输入
with open("testDTC.txt", "r+") as f:
for line in f:
if ' ' in line: #read first space
if ' ' in line: #read second space
line.append(';')
f.write(line)
f.close()
我知道它离我需要的东西还很远,但是自从我在 python 中进行字符串操作以来已经很长时间了。
【问题讨论】:
-
您从哪里得知
if语句是从文件中读取的? -
@Two-BitAlchemist 您从哪里得知 if 语句正在从文件中读取? if 语句正在测试一个字符串。您的评论对 OP 并不是特别有用。只是刻薄。
-
在你想附加的字符串后面加上 ;曾经从数字本身开始吗?
-
看看模式,我会选择稍微不同的逻辑。我会去插入一个 ;你第一次在每一行中看到一个小写字母不是以 : 开头的(行用 \n 分隔)
-
@moorej 哦,我不知道。从 if 语句旁边的原始代码中的 cmets 说“读取 x 空间”?无论如何,应该还有更多,但我被叫走了。