我有一个名为hello.txt的文件,其中包含以下内容:
1 one
2 two
3 three
4 four
5 five
现在我作为用户选择从该文件中删除两个关键字,即一次点击即可删除四个和两个。
答案 0 :(得分:0)
实施可能因文件格式,使用的库等而异。
假设我们有一个类似的文件:
file = "1 one\n" \
"2 two\n" \
"3 three\n" \
"4 four\n" \
"5 five\n"
我们要删除的关键字如下:
keys_to_remove = ["two", "four"]
现在,一个简单的算法,只有当关键字不存在时,我们才会在新文件中添加一行:
new_file = str()
for line in file.split("\n"):
do_append = True
for key in keys_to_remove:
if key in line:
do_append = False
if do_append:
new_file += line
new_file += '\n'
print(new_file)
输出:
1 one
3 three
5 five
答案 1 :(得分:0)
尝试将文件打开到列表列表中,然后循环使用关键字删除任何列表。
file = open('hello.txt','r')
fileData = file.readlines()
newFileData = []
file.close()
removeThese = ['two','four']
for line in fileData:
line = line.split(' ')
if line[1] not in removeThese:
newFileData += line
file = open('hello.txt','w')
for line in newFileData:
file.write(' '.join(line))
file.close()
答案 2 :(得分:0)
我的基本查询是:
我有一个文件" hello.txt" 它的内容是这样的 - >
1索尼 2三星 3诺基亚 4 iphone 5 toshibha现在将询问用户您想要查看哪两个手机
然后用户将给出3和5
因此,在接受用户请求后,应从hello.txt中删除两个移动设备。
如果用户选择3个手机或任何n个项目
,则同样适用答案 3 :(得分:0)
试试这个。
new_file_data = []
file_data = [line.strip() for line in open("test.txt", "r")]
remove = ["five"]
for c in file_data:
if c not in remove:
new_file_data.append(c)
with open("test.txt","w") as file:
for c in new_file_data:
file.write("".join(c) + "\n")