首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在文件中追加类似的字符串

在文件中追加类似的字符串
EN

Stack Overflow用户
提问于 2019-02-09 19:44:28
回答 1查看 34关注 0票数 0

嗨,我遇到一个小问题时,附加一个字符串到一个文件。因此,基本上,我是在文件中不存在的书籍后面使用以下内容:

代码语言:javascript
复制
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()

我的文件包含以下内容:

代码语言:javascript
复制
Human Philosophy
Human Philosophy book

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

代码语言:javascript
复制
Human Philosophy
Human Philosophy book

但是,请返回以下内容:

代码语言:javascript
复制
Human Philosophy book

如果两个值彼此相似,我需要做什么才能将Human Philosophy添加到文件中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-09 20:07:27

问题是

代码语言:javascript
复制
>>> 'Human Philosophy' in 'Human Philosophy book\n'
True

因此,您可以这样做:

代码语言:javascript
复制
>>> ('Human Philosophy'+'\n') in 'Human Philosophy book\n'
False

我重写了你的剧本。这应该能让你更好地使用

代码语言:javascript
复制
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)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54610062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档