从行中删除单词,并使用python将行保存到文件中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从行中删除单词,并使用python将行保存到文件中相关的知识,希望对你有一定的参考价值。
我需要以下行:test_list =“ root / abc_test.list someText tests / long_test.list someText tests / h2.list”
将更改为:
test_list="tests/My_test.list"
** .list
可能出现在行中的任何位置。
实际上需要做的是找到每个具有“ .list的单词,如果它是long_test.list,将其更改为My_test.list
,然后将其更改后,然后删除所有包含".list"
的其他字符串,接受改变了。
为了解决此问题,我将单词long_test.list更改为xXxXxX,然后删除了所有.list单词,然后将xXxXxX更改回My_test.list
。为此,我使用了以下代码:
with in_place.InPlace('RUN_NEW') as file:
for line in file:
line = line.replace('long_test_list', 'xXxXxX')
file.write(line)
file.close()
with open("RUN_NEW","r+") as f:
new_f = f.readlines()
f.seek(0)
for line in new_f:
line = str(line).split(' ')
print(line)
print(len(line))
for word in line:
if ".list" not in word:
f.write(word)
f.close()
with open("file.txt","r+") as f:
new_f = f.readlines()
f.seek(0)
for line in new_f:
line = str(line).split(' ')
for k in line:
if ".list" not in k:
s=' '
print(s.join(k.split('"')))
#f.write(s.join(k.split('"')))
上述代码的问题是,用('')分割后的行看起来像['set', 'test_list="tests/long_test.list', 'tests/h2.list"']
,当我尝试将其重新加入时,它将在每个不包含"\n"
的子字符串之后将其保存为.list
。我当时在考虑正则表达式,但这只会删除.list
本身,即所有子字符串。而且我也想保存报价,但不要在拆分期间将其删除。
此小脚本演示了如何在一行中进行替换。使用re.sub查看读入的行(在此处模拟),并查找双引号,后跟可选的一组任意数量的以空格结尾的字符(如果目标路径位于字符串的开头,则为可选)然后是捕获的任意数量的字符组,其后是文字“ long_test.list”,其后是任意数量以双引号结尾的字符。如果找到整个匹配项,则用双引号替换,然后是第一个捕获的组,然后是文字“ My_test.list”,然后是双引号。如果找不到匹配项,则将返回读入的整行。
#!/usr/bin/env python
import re
line = 'test_list="root/abc_test.list someText tests/long_test.list someText tests/h2.list"'
print(line)
line = re.sub(r'"(.* )?(.*)long_test.list.*"', r'"\2My_test.list"', line)
print(line)
$ ./test.py
test_list="root/abc_test.list someText tests/long_test.list someText tests/h2.list"
test_list="tests/My_test.list"
$
以上是关于从行中删除单词,并使用python将行保存到文件中的主要内容,如果未能解决你的问题,请参考以下文章
我有 3 行的 SQLite 数据库,当我从行中删除数据时,数据会丢失但行仍然会,我怎样才能删除那个空白行?