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

文件路径的生成及其在文件操作中的应用

本文介绍了文件路径的生成方法及其在文件操作中的应用。在进行文件操作时,需要知道文件的具体位置才能打开文件。文件的位置有绝对路径和相对路径之分。绝对路径通常只在特定电脑上有效,不同电脑上的文件存放路径可能不同,导致程序报错。相对路径是解决这个问题的最好方式,它不依赖于文件的具体存放位置,只需要按照统一的规范进行文件存放即可。使用相对路径可以避免冗余和麻烦,特别适用于大项目和团队维护代码的情况。

  一、当我们在进行文件操作的时候,首先得知道文件的具体位置才能利用内置函数open()打开,而文件的这个“位置”又有“绝对”与“相对”之分。

  我们可以这样理解:文件的“绝对路径”绝大多数情况下只有在我们自己的电脑上才有效,除非不同的电脑里这两个文件存放的盘符与路径完全一致。例如,张三做的一个项目里有一个名为whw.txt的文件存放着一些用户需求信息,该文件在张三电脑里的存放路径为:D:\user\whw.txt;有一天张三去忙另外一个项目把现有的程序交给李四维护,同样的文件whw.txt在李四的电脑里存放的路径变成了E:\Python\exercise\ex11\whw.txt,如果程序里面还用张三之前的存放路径肯定会报错。对于李四而言虽然只要将文件的存放路径按照张三之前的路径改动一下就可以了,但是,对于一个大项目有几十个甚至上百个文件、一个团队十几人共同维护代码的情况下,必须强制所有人都得按照同样的规范进行文件存放,这样势必给开发带来不必要的冗余甚至麻烦。

  二、而“相对路径”是解决这个问题的最好的方式,它并不纠结于文件具体的存放位置,只要先找到编程人员“源程序运行的位置”,然后在源程序的根目录下添加该文件相对于源程序的目录即可。具体操作方式如下:

 

  如上图所示,我们的源程序1.py有一个相同目录下的path文件夹里的rtr.txt文件需要操作。

  首先,我们利用os模块找到源程序的路径并将它赋值给变量BASE_DIR:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

找到源程序在我们本电脑的路径后,我们只要把path文件夹里的rtr.txt文件再“追加”到这个存放着源程序目录的变量 BASE_DIR 后面即可:

_path_rtr1 = os.path.join(BASE_DIR,'path','rtr.txt')

  程序的运行效果如下:

  三、其实,关于相对路径的“追加”除了os.path.join()方法 之外还有一种方式,就拿上面的例子来讲,我们也可以这样追加:

_path_rtr2 = BASE_DIR + r'\path\rtr.txt'

  效果如下:

  运行效果与os.path.join()方法一致。但是二者的区别又在哪里呢?

  这与程序运行的操作系统有关。

  我们知道,文件在linux的目录格式为E:/practice/exercise/PRACTICE,而windows操作系统下的格式是:E:\practice]\exercise\PRACTICE。二者斜杠的方向不同。很显然,如果我们用第二种方式去追加文件的相对路径,该程序仅能在windows下运行,而第一种方式生成的路径会根据操作系统的不同生成不同的目录格式。我们都知道python的一大优势便是“跨平台”,所以在实际中建议大家用os.path.join()方法去生成文件的相对路径。

 

转:https://www.cnblogs.com/paulwhw/p/8889043.html



推荐阅读
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • Linux 基础命令详解
    本文介绍了在 Linux 系统中常见的命令及其用法。当用户登录系统后,默认提示符会显示为 [root@localhost ~]# 或 [user@localhost ~]$,其中 # 表示当前用户为 root,$ 表示普通用户。我们将深入探讨一些常用的 Linux 命令,帮助初学者更好地理解和使用这些工具。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
author-avatar
mobiledu2502922957
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有