在fi后面附加类似的字符串

2024-10-03 06:32:26 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我遇到了一个小问题,当追加一个字符串到一个文件。所以基本上,我是在附加文件中不存在的书籍,使用这个:

def writeBooks2File(booklist_dir):
    BOOKS = ['Human Philosophy', 'Human Philosophy book']
    for val in BOOKS:
        if val not in open(booklist_dir, "r").read():
            f = open(booklist_dir, "a")
            f.write(val + "\n")
            f.close()

我的文件包含以下内容:

Human Philosophy
Human Philosophy book

假设我删除Human Philosophy,文件只包含Human Philosophy book。再次运行writeBooks2File(booklist_dir)不会返回此输出:

Human Philosophy
Human Philosophy book

但请返回以下内容:

Human Philosophy book

我需要做什么才能使addHuman Philosophy进入文件,使两个值彼此相似


Tags: 文件字符串indefdirvalopenbooks
1条回答
网友
1楼 · 发布于 2024-10-03 06:32:26

问题是

>>> 'Human Philosophy' in 'Human Philosophy book\n'
True

因此,您可以这样做:

>>> ('Human Philosophy'+'\n') in 'Human Philosophy book\n'
False

我重写了你的剧本。。。这会给你更好的使用

def writeBooks2File(booklist_dir,books):
    f = open(booklist_dir, "a")
    for val in books:
        if val+'\n' not in open(booklist_dir, "r").read():

            f.write(val + "\n")
    f.close()

def removebooks(booklist_dir,books):
    with open(booklist_dir, "r") as File:
        all_books = File.read()
    for book in books:
        new = all_books.replace(book+'\n','')
    with open(booklist_dir, "w") as File:
        File.write(new)
books = ['Human Philosophy book','Human Philosophy']        
writeBooks2File('test.txt',books)

remove_books = ['Human Philosophy'] 
removebooks('test.txt',remove_books)

有了这个,你可以做你不能做的事。即使有“人类哲学书”,也要在文件后面加上“人类哲学”

相关问题 更多 >