首页 > 编程语言 >python文件路径和内容处理以及异常处理

python文件路径和内容处理以及异常处理

时间:2023-06-05 18:45:32浏览次数:37  
标签:文件 python 路径 处理 test print path txt open

1.文件路径

绝对路径和相对路径

绝对路径:绝对路径,从盘符开始的路径(d:\data\file\abc.txt)

from pathlib import Path
path=Path('test.txt')
print(path.absolute())

相对路径:相对于当前的路径,当前是一个变量,在执行python时,所处的目录(./abc/a.txt  ../ab/c.txt test.txt)

没有写文件夹的:当前文件夹下的文件
./当前文件夹下的文件
../父文件夹下的文件

如何判断路径存在?

import os
from pathlib import Path
path=Path('test.txt')
print(path.absolute())
if(path.exists()):
    print("路径存在")
    if path.is_dir(): #是不是目录
        path.rmdir() #删除目录
        print("目录删除成功")
    else:
        os.remove(path)
        print("文件删除成功")
else:
    print("路径不存在")
    #path.mkdir()#创建目录
    path.touch()#创建文件


path=Path('./yaml_demo.py')
print(path.absolute())

path=Path('../yaml_demo.py')
print(path.absolute())

path功能

path不仅可以实现相对路径转绝对,而且可以:
根据路径创建文件
根据路径创建目录
判断路径是否存在
判断路径是目录还是文件
删除路径(目录)
删除文件(os模块)

2.文件内容

2.1 打开文件

首先要有路径,才能操作文件
其次要打开文件,才能操作文件

内置函数open打开文件 

open(file,mode='r',buffering=None, encoding=None, errors=None, newline=None, closefd=True)

  •  位置参数:file文件路径
  • 关键字参数:model

    wt:文本写入(会创建新文件,清空文件内容)
    rt:文本读取 (默认值)
    wb:二进制写入(会创建新文件,清空文件内容)
    b:二进制读取

  • encoding:
    gbk:windows中文版的默认编码
    utf-8:推荐的统一编码

文件操作

open("test.txt",mode="wt",encoding="utf-8")#创建空文件
open("test.txt",mode="rt",encoding="utf-8")#读取文本文件

open("img.jpg","wb")#创建空二进制文件
open("img.jpg","rb")#读取二进制文件

open("test.txt") #没有关键字参数,不报错
open("test.txt",mode="w") #wt
open("test.txt",mode="t")#rt

2.2 读写文件

注意:

  1. 正确的打开模式,才能读写
  2. 读写之后,应该及时关闭文件

2.2.1 写入文件

write:写入内容

writelines:写入多行

a="你好,我是张三"
b="你好,我是王舞"
c=[a,b]
f=open("test.txt",mode="wt",encoding="utf-8")
f.write("你好呀\n今天天气很好呀") #写入内容
f.writelines(c) #写入多行
f.close()

2.2.2 读取文件

read:读取内容

f=open("test.txt",encoding="utf-8")
s=f.read() #读取全部内容
print(s)
f.close()

readline:读取一行

f=open("test.txt",encoding="utf-8")
s=f.readline() #读取一行
print(s)
f.close()

readlines:读取所有行

f=open("test.txt",encoding="utf-8")
s=f.readlines() #读取所有行
print(s)
f.close()

“行”的标准是什么?

  • 以换行符进行分割

3.异常处理

3.1 异常常识:

异常+不处理:程序崩溃

异常+处理:程序继续运行

异常的特点:

  • 停止执行
  • 向上冒泡(传播)
  • 显示异常原因和调用栈

3.2 异常处理

在异常传播的任何一个层级,通过捕捉对异常进行处理

def c():
try:
open("abc.apx") #出现异常
except Exception as e: #捕捉常见异常
print(1,e)
except FileNotFoundError as e:
print(2,e)
print("i am c")

c()

注意:

  • 异常捕捉从上到下,只捕捉一次
  • 异常也分大小
  1.     如果捕捉的异常==出现的异常,捕捉成功
  2.     如果捕捉的异常>出现的异常,捕捉成功

 

标签:文件,python,路径,处理,test,print,path,txt,open
From: https://www.cnblogs.com/lgs-tech/p/17458697.html

相关文章

  • python作用域
    1变量作用域变量(所有在内存中的数据)作用域:LEGBL:Local本地作用域(局部作用域),函数内部E:Enclosed闭包作用于,两个函数之间的,G:Gobal全局作用域(这个文件)B:Builtln内置作用域(全局通用)(pprint(builtins))内置:在任何地方,都可以直接使用全局:在本文件的任何地方,可以直接使用访问顺序:当我......
  • # yyds干货盘点 # Python中encoding='utf-8-sig'是什么意思
    大家好,我是皮皮。一、前言前几天在Python白银群【凡人不烦人】问了一个Python编码的问题,这里拿出来给大家分享下。二、实现过程这里大家一起来学习下。在Python中,encoding='utf-8-sig' 是一种编码格式,用于指定字符串的编码方式。具体来说,utf-8-sig 编码格式是 utf-8 编码的一种......
  • python解析
    关于beautifulsoupBeautifulSoup用来从HTML或XML文件中提取数据现在最新的版本是beautifulsoup3已经停止开发,现在最新推荐使用的是beautifulsoup4安装pipinstallbeautifulsoup4beautifulsoup要用起来还需要一个解析器的东西,官网列出了主要的一些解析器除了第一个标......
  • Python 基础(一):入门必备知识
    入门必备知识 1标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx,表示不能直接访问的类属性,需通过类提供的接口进行访问,......
  • 使用 python-fire 快速构建 CLI
    命令行应用程序是开发人员最好的朋友。想快速完成某事?只需敲击几下键盘,您就已经拥有了想要的东西。Python是许多开发人员在需要快速组合某些东西时选择的第一语言。但是我们拼凑起来的东西在大多数时候并不是一个完整的CLI,您需要管理标志、解析参数、链接子命令等等,这很麻烦,因此......
  • python+uiautomator2+atx,未开启底部导航栏会存在元素不一致
    如果在同一个安卓手机上,一个应用程序开启了底部导航栏而另一个未开启,在UI自动化测试中,这可能会导致元素在两个应用程序之间的定位方式有所不同。因为不同的应用程序可能会使用不同的布局和元素渲染方式。如果在未开启导航栏的应用程序中无法找到元素,则需要确保您的locator与该应......
  • 亿级 GPS 数据处理用 NoSQL、MySQL 还是 HBase?数据库选型看这里
    在车联网场景下,GPS产生的时序数据量级通常都达到了亿级,高效写入、存储和快速查询是最基本的数据处理要求,但在具体实践上这却不是一件容易实现的事情。最近某企业就遇到了这样一个问题:服务端接收存储GPS相关数据,按1次/30秒的上传频率,一天的数据条数估计在1.2亿条,其想要实......
  • 汽车代码的实现 - 用python、c++写的自动驾驶系统
    汽车代码的实现-自动驾驶系统自动驾驶系统是近年来发展迅速的汽车代码领域之一。这个系统旨在使用传感器和计算机,自动化控制车辆行驶,消除驾驶员的错误和危险。实现自动驾驶系统需要使用一些重要的编程语言和技术,如Python、Matlab、深度学习和机器视觉算法。此外,还需要使用各种......
  • 简析python深浅拷贝
    1.基础知识a=123b=123#内存函数id,返回变量的内存地址id(a)id(b)c="123"d=cid(c)id(d)f=[1,2,3]g=[1,2,3]h=fid(f)id(g)id(h)使用内存分析工具winDbg查看这两个变量的内存分布操作步骤:1.使用系统计算机工具程序员模式复制粘贴id得到16进制内存地址2.打开w......
  • 实验6 turtle绘图与python库应用编程体验
    任务1fromturtleimport*defmove(x,y):penup()goto(x,y)pendown()defdraw(n,size=100):foriinrange(n):fd(size)left(360/n)defmain():pensize(2)pencolor('red')move(-200,0)draw(3)mov......