首页 > 其他分享 >pathlib and difflib

pathlib and difflib

时间:2024-06-07 15:45:29浏览次数:16  
标签:pathlib difflib file diff print Path

pathlib.Path("a.crt").write_text(a[0])

p.chmod(0o444)
Path.cwd()
p.write_bytes(b'Binary file contents')
p.read_bytes()

Path('setup.py').exists()


class pathlib.WindowsPath(*pathsegments)
WindowsPath('c:/Program Files/')
1. pathlib - 高级用法
pathlib 提供了一个面向对象的文件系统路径操作接口。我们来看看如何使用这个库进行一些更高级的操作:

链式方法调用
pathlib 允许使用链式方法调用来简化文件操作。例如,你可以直接从一个路径对象创建、读取和写入文件,而无需中间变量。

python
Copy code
from pathlib import Path

# 创建并写入文件
(Path("example_folder") / "test.txt").write_text("Hello, world!")

# 读取文件
content = (Path("example_folder") / "test.txt").read_text()
print(content)

# 列出目录下所有文件
files = [x for x in Path("example_folder").iterdir() if x.is_file()]
print(files)

# 使用glob模式查找文件
py_files = list(Path("example_folder").glob("*.py"))
print(py_files)
路径操作和检查
使用 pathlib 进行文件路径的操作和状态检查非常直观:

python
Copy code
from pathlib import Path

p = Path("/usr/bin/python3")

# 检查是否为文件
if p.is_file():
    print(f"{p} is a file.")

# 检查是否为目录
if p.parent.is_dir():
    print(f"{p.parent} is a directory.")

# 解析路径的各个部分
print(f"Name: {p.name}")
print(f"Suffix: {p.suffix}")
print(f"Parent Directory: {p.parent}")
2. difflib - 高级用法
difflib 是处理文本差异和生成差异报告的强大工具。它可以用来高效地比较文件内容或生成人类可读的差异报告。

生成详细的文本差异
使用 difflib 的 unified_diff 生成具有上下文的差异,这对代码审核尤其有用。

python
Copy code
import difflib
import sys

text1 = "one\ntwo\nthree\nfour\nfive\n".splitlines(keepends=True)
text2 = "zero\none\ntree\nfour\nfive\n".splitlines(keepends=True)

# 生成带上下文的差异
diff = difflib.unified_diff(text1, text2, fromfile='old.txt', tofile='new.txt')
sys.stdout.writelines(diff)
生成 HTML 差异报告
HtmlDiff 类可以生成一个 HTML 表格,显示两个序列之间的差异,适合在Web页面上展示比较结果。

python
Copy code
import difflib

text1 = "This is a test text file.".split()
text2 = "This is a test shifted text file.".split()

html_diff = difflib.HtmlDiff()
html_content = html_diff.make_file(text1, text2, context=True, numlines=2)

# 输出 HTML 内容到文件
with open("diff.html", "w") as f:
    f.write(html_content)



标签:pathlib,difflib,file,diff,print,Path
From: https://www.cnblogs.com/vivivi/p/18237299

相关文章

  • Python内置库:pathlib(文件路径操作)
    官方文档:pathlib—Object-orientedfilesystempaths一、基础使用遍历子目录使用通配符遍历文件拼接路径获取标准化后的绝对路径查询路径常规属性打开文件frompathlibimportPathprint('1.1查询指定目录的子目录')p=Path('D:/Envs')print([sub_pforsub_p......
  • difflib: Python 比较数据集
    difflib 是一个专注于比较数据集(尤其是字符串)的Python模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。SequenceMatcherSequenceMatcher 是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio(),我们将能够根据比率/......
  • Python中pathlib 模块的用法
    pathlib模块提供了表示文件系统路径的类,可适用于不同的操作系统。使用pathlib模块,相比于os模块可以写出更简洁,易读的代码。pathlib模块中的Path类继承自PurePath,对PurePath中的部分方法进行了重载,相比于os.path有更高的抽象级别。本文将带你学习如何使用pathlib......
  • UVM宏解释+odt文件转doc+merge命令和difflib+python调用命令+clog2和系统函数+java添
    UVM宏解释UVM_DISABLE_AUTO_ITEM_RECORDINGhttps://blog.csdn.net/MGoop/article/details/127295965itemrecord的方法主要是用于记录事务信息的,原理是调用accept_tr,begin_tr,end_tr。似乎和波形上显示出各个事务相关。默认情况下,在调用get_next_item()和item_done()时自动......
  • 告别os.path,拥抱pathlib
    pathlib模块是在Python3.4版本中首次被引入到标准库中的,作为一个可选模块。从Python3.6开始,内置的open函数以及os、shutil和os.path模块中的各种函数都可以正确地使用pathlib.Path对象了。最初,pathlib给人的感觉只是os.path的一个不必要的面向对象版本,不过,当你实际去......
  • difflib: Python 比较数据集
    difflib 是一个专注于比较数据集(尤其是字符串)的Python模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。SequenceMatcherSequenceMatcher 是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio(),我们将能够根据比率/......
  • python3之os库和pathlib库
    #os标准库importos#当前Python运行所在的环境posix,nt,javaprint(os.name)#nt#os.getcwd()获取当前工作路径print(os.getcwd())dir="./files/foo/bar/bar2"file=os.path.join(dir,"c.txt")#os.path.join()可以将多个传入路径组合为一个路径print(file)......
  • 使用 pathlib 代替 os.path
    使用pathlib代替os.path这个是3.4版本以后的新功能pathlib---面向对象的文件系统路径下面是使用pathlib进行常见目录操作的案例:frompathlibimportPath#获取当前工作目录current_dir=Path.cwd()print("当前工作目录:",current_dir)#获取用户home目录......
  • from difflib import SequenceMatcher
    difflib.SequenceMatcher是Python标准库中的一个模块,它用于比较两个序列之间的相似度。它可以用于字符串比较、文件比较等多种场景。matcher.ratio()在使用SequenceMatcher时,需要创建一个SequenceMatcher对象,并将要比较的两个序列传递给它。然后,可以调用ratio()方法来计算两个序列......
  • Pathlib学习
    Pathlib简单应用importos#获取上一层目录print(os.path.dirname(os.getcwd()))#/Users/na/PycharmProjects/python_1test/a/c#获取上上层目录print(os.path.dirname(os.path.dirname(os.getcwd())))#/Users/na/PycharmProjects/python_1testfrompathlibimport......