Python之文件

本文详细介绍Python中文件的基本操作,包括文件的打开与关闭、读写操作、指针控制及使用os模块进行文件管理等。适合初学者快速掌握Python文件处理技巧。

1.打开文件
*方式一:f = open()
# 文本:f = open('#文件名',mode='r/r+/w/w+/a/a+')
# 图片:f = open('#文件名',mode='rb/rb+/wb/wb+/ab/ab+')
# 打开文件默认mode='r';

(1)'r':只有读权限:

       a.文件不存在:则报错

       b.文件存在:不会清空原有内容

(2)'w':只有写权限:

       a.文件不存在:则创建文件

       b.文件存在:先清空原有内容后写入

(3)'a':只有写权限:

       a.文件不存在:则创建文件

       b.文件存在:不会清空直接追加写入内容

(4)'r+':有读写权限:

       a.文件不存在:则报错

       b.文件存在:不会清空直接追加写入内容

(5)'w+':有读写权限:

       a.文件不存在:则创建文件

       b.文件存在:先清空原有内容后写入

(6)'a+':有读写权限:

       a.文件不存在:则创建文件

       b.文件存在:不会清空直接追加写入内容

*方式二:with-as 关键字
# with open('#文件名') as f:
# 优势:实现文件自动关闭,无需f.close()关闭文件
# python2.7以后可实现两个文件同时打开进行交互操作
  with open('#文件名', 'r') as file, open('#文件名', 'w') as file1:
        
2.关闭文件
(1)f.close():关闭

(2)f.closed:查看是否关闭,变量,为布尔值


3.读写操作
(1)read
a. f.read(x):默认返回值为全文内容,参数指定读取x个字节
b. f.readline():一行一行显示
c. f.readlines():返回列表,全文每一行为列表元素
d. f.readable():是否有读权限,返回布尔值
(2)write
a. f.write('x'):返回值为输入字符数
b. f.writelines():参数为列表,将列表中每个元素依次写入
c. f.writable():是否有写权限,返回布尔值
d. 快速清空文件
   f = open('#文件名','w')

 

   f.close

 

4.指针操作
#读或写文件时都会移动指针,编程时注意用seek(0,0)归位指针
(1)f.seek():移动指针.
            第一个参数是偏移量,大于0向右移动,小于0向左移动;
            第二个参数有三个固定值:0-移动到文件开头;1-不移动;2-移动到文件结尾.
(2)f.tell():返回值为指针所在位置的字符数

 

5.文件对象

# 可迭代:for循环默认遍历文件每一行

6.os模块文件管理

# pwd
print(os.getcwd())

# ls
print(os.listdir('/var/log'))

# touch
os.mknod('/tmp/westos')

# mkdir
os.mkdir('/tmp/westosdir')

# mkdir -p /tmp/ok/westosdir
os.makedirs('/tmp/ok/westosdir')

# rm 
os.remove('/tmp/westos')

# rm -r
os.removedirs('/tmp/ok/westosdir')

# mv
os.rename('/tmp/passwdok', '/mnt/passwdok')

# 判断文件属性
print(os.path.isfile("/etc/passwd"))

# 判断是否为绝对路径
print(os.path.isabs("~/passwd"))

# 判断文件或者目录是否存在;
print(os.path.exists('/etc/passwds'))
print(os.path.exists('/mnt'))

# 分离路径与文件名:返回元组
# 路径分隔符:
# Linux: /etc/passwd/hh
# Windows: C:\\book\python
print(os.path.split('/etc/passwd/hh'))

# 分离文件名与后缀名
print(os.path.splitext("hello.py"))

# 获取当前系统下的路径分隔符
print(os.path.sep)

# 获取文件名
print(os.path.basename('/hello/hello.py'))

# 获取目录名
print(os.path.dirname('/hello/hello.py'))

7.脚本

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 在信息技术领域,特别是软件编程行业,微软公司推出的集成开发环境(IDE)Visual Studio,凭借其卓越的功能和广泛的适用范围,成为了众多程序员的常用工具。不过,在实际操作期间,用户可能会遭遇各种挑战,其中一种较为普遍的挑战是“Visual Studio遭遇了异常情况,这或许与某个附加组件有关”。本文将详细研究这一现象的成因、潜在后果以及最终的应对措施。 ### 原因剖析 Visual Studio通过支持多种插件和附加组件来扩展其功能,这些组件通常由第三方开发者设计,旨在为用户提供更多个性化和专业化的工具。然而,这些插件的质量良莠不齐,部分可能未经过充分的测试或与特定版本的Visual Studio存在兼容性难题,从而在执行时引发异常。异常的出现可能源于以下几个因素: 1. **代码缺陷**:若附加组件中的代码存在逻辑问题或资源管理不当,就可能导致运行时异常。 2. **资源竞争**:多个插件同时占用相同的资源(例如内存、文件句柄等),可能会产生资源冲突,进而触发异常。 3. **依赖不匹配**:插件可能需要特定版本的库或框架,如果系统中安装的版本不一致,也可能导致异常。 4. **安全隐患**:部分插件可能存在安全漏洞,一旦被恶意利用,可能会导致更严重的问题,包括但不限于异常崩溃。 ### 后果分析 当Visual Studio遇到由附加组件引发的异常时,不仅会中断当前的工作进程,降低开发效能,还可能带来以下潜在风险: 1. **数据遗失**:若异常发生在保存操作之前,可能会导致未保存的工作内容遗失。 2. **稳定性减弱**:频繁的异常会导致Visual Stud...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值