
本文旨在提供一种更清晰、更易于维护的方式,来修改文件中特定行的数值。通过将文件读取、数据处理和文件写入分离成独立的函数,可以有效提高代码的可读性和可重用性。我们将展示如何使用 Python 将文本文件转换为易于操作的数据结构,修改数据,并将修改后的数据写回文件。
原始代码存在一些问题,例如在读取文件的同时进行写入,这可能导致数据损坏。此外,代码逻辑较为复杂,可读性较差。为了解决这些问题,我们将代码分解为三个独立的函数:getBooks、decrementBookUnits 和 writeBooks。
此函数负责读取文件内容,并将其转换为一个易于操作的 Python 列表,其中每个元素都是一个字典,代表一本书的信息。
def getBooks(file):
"""
读取文件内容,并将其转换为一个列表,其中每个元素都是一个字典,代表一本书的信息。
:param file: 文件名或文件路径。
:return: 一个列表,其中每个元素都是一个字典,代表一本书的信息。
"""
with open(file, 'r') as booksFile:
content = booksFile.read().splitlines()
lines=[line.split(' -- ') for line in content]
books=[dict(entry.split(':') for entry in line) for line in lines]
return books代码解释:
立即学习“Python免费学习笔记(深入)”;
此函数接收书籍列表和 ISBN 作为输入,并在列表中找到匹配的书籍,然后修改其 ISBN 的值。
def decrementBookUnits(books, isbn):
"""
修改书籍列表中指定 ISBN 的书籍的 ISBN 值。
:param books: 书籍列表,每个元素是一个字典。
:param isbn: 要修改的书籍的 ISBN。
:return: 修改后的书籍列表。
"""
for idx, entry in enumerate(books):
if entry['ISBN'] == str(isbn):
books[idx]['ISBN'] = '666'
return books代码解释:
立即学习“Python免费学习笔记(深入)”;
此函数接收书籍列表和文件名作为输入,并将书籍信息以原始格式写回文件。
def writeBooks(books, file):
"""
将书籍列表以原始格式写回文件。
:param books: 书籍列表,每个元素是一个字典。
:param file: 要写入的文件名。
"""
with open(file, 'w') as booksFile:
for entry in books:
booksFile.writelines(' -- '.join(['='.join([k,v]) for k,v in entry.items()]) + '\n')代码解释:
立即学习“Python免费学习笔记(深入)”;
# 读取书籍信息
books = getBooks('books.txt')
# 修改 ISBN 为 33 的书籍的 ISBN 值
books = decrementBookUnits(books, 33)
# 将修改后的书籍信息写回文件
writeBooks(books, 'books2.txt')通过将文件读取、数据处理和文件写入分离成独立的函数,可以有效提高代码的可读性和可重用性。这种模块化的设计方法使得代码更易于维护和扩展。同时,使用适当的数据结构(如字典列表)可以简化数据处理过程。
以上就是Python 修改文件中特定行的数值:一种更清晰的实现方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号