热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

听说,python高手都用这个方法处理路径

python高手

python小白处理路径的方式:
data_folder = "source_data/text_files/"
file_to_open = data_folder + "raw_data.txt"。
后来在python老鸟的指导下,终于知道了,可以使用os.path来处理:
file_to_open = os.path.join(data_folder, "raw_data.txt")。真正的高手是不会用这两种方式的,快来学习一下吧。

使用pathlib

在python3.4中,引入了一个新的包来处理文件和路径,那就是pathlib,这是一个非常棒的python包,目的是取代现有的os.path包。

其基本使用方式:

from pathlib import Path

data_folder = Path("source_data/text_files/")

file_to_open = data_folder "raw_data.txt"

f = open(file_to_open)

print(f.read())

看起来似乎也没有方便更多?

那你就错了!

请注意,在上面的代码中,Path中的路径里用的都是"/",现在不管你的程序是在windows,linux还是macOS,都可以这样使用。

不用考虑windows中麻烦的路径分隔符:
data_folder = "source_data\\text_files\\"

Path会根据目标平台自动帮你转换好的。

另外,拼接路径时,再也不需要使用os.path.join(a,b)这么笨重的方法,直接"/"进行拼接即可。这得益于python的操作符重载功能!

读取内容

在上面的演示代码中,读取文件内容还是用的老式方法,其实大可不必,现在可以这么做:

rom pathlib import Path

data_folder = Path("source_data/text_files/")

file_to_open = data_folder "raw_data.txt"

print(file_to_open.read_text())

这里,你只需要read_text(),不用考虑文件的关闭问题,因为Path都为你在背后做好了。

各种小甜点

使用Path,路径中的很多信息可以轻松获得:

from pathlib import Path

filename = Path("source_data/text_files/raw_data.txt")

print(filename.name)
# prints "raw_data.txt"

print(filename.suffix)
# prints "txt"

print(filename.stem)
# prints "raw_data"

if not filename.exists():
print("Oops, file doesn't exist!")
else:
print("Yay, the file exists!")

import webbrowser

filename = Path("source_data/text_files/raw_data.txt")

# 获取绝对路径并转换为file://开头的uri,用浏览器打开
webbrowser.open(filename.absolute().as_uri())

不同平台路径格式转换

使用pathlib,你可以轻松在在不同平台之间转换路径格式,以Unix和Windows两个平台为例:

from pathlib import Path, PureWindowsPath

filename = Path("source_data/text_files/raw_data.txt")

# Convert path to Windows format
path_on_windows = PureWindowsPath(filename)

print(path_on_windows)
# prints "source_data\text_files\raw_data.txt"

是不是感觉pathlib非常的棒呢,的确,它帮我们解决了很多烦人的小问题,减少了模板代码,使得我们的程序更加的干练通用。这就是python比较强大的地方,有非常多非常棒的库帮助我们完成工作。

以后,我会不定期分享python相关的小技巧,欢迎关注哦!

往期精彩回顾

【crash DP】上下班路上学动态规划(1)

【腾讯面试热身题】二叉树层次遍历(动画展示)

【阿里高频题】动画讲解二叉树深度优先遍历

【阿里高频题】二叉树深度遍历进阶版

【图解】快慢指针解链表判环问题

【强!】深度优先遍历求二叉树的直径

  换个风格学快速排序

【头条面试-40K】反转吧,链表!

【头条面试-40K】反转链表加强版

【面霸之路】双指针和滑动窗口结合

【送书!】最佳算法入门书籍

  我是如何简单粗暴攻克面试算法题入职阿里的?

【阿里面试热身题】数组去重(动画展示)





推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
author-avatar
手机用户2502884601
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有