Python技能树每日一练——文件操作

举报
士别三日wyx 发表于 2022/01/17 23:31:23 2022/01/17
【摘要】 「作者主页」:士别三日wyx   此文章已录入专栏《Python入门到精通》   2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 ...

「作者主页」:士别三日wyx
  此文章已录入专栏《Python入门到精通》
  2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习


「操作文件」

1. 打开文件

open() 函数用来打开文件

语法

open( name, mode )

  
 
  • 1

参数

  • name:文件路径
  • mode:可选,模式
  • 返回值:文件对象

E 盘创建文件 a.txt ,使用 open() 函数打开该文件

file = open('E://a.txt')
print(file)

  
 
  • 1
  • 2

输出:

<_io.TextIOWrapper name='E://a.txt' mode='r' encoding='cp936'>

  
 
  • 1

1.1 文件路径

文件路径分为两种:

  1. 相对路径
  2. 绝对路径

1.1.1 相对路径

相对路径是指「相对于当前文件」的路径
打开当前目录下的 a.txt 文件

file = open('a.txt')
print(file)

  
 
  • 1
  • 2

输出:

<_io.TextIOWrapper name='a.txt' mode='r' encoding='cp936'>

  
 
  • 1

1.1.2 绝对路径

绝对路径是指文章在「电脑」中的位置

打开 E Python 目录下的 a.txt 文件

file = open('E://python/a.txt')
print(file)

  
 
  • 1
  • 2

输出:

<_io.TextIOWrapper name='E://python/a.txt' mode='r' encoding='cp936'>

  
 
  • 1

1.2 模式

修改参数 mode 的值,可以指定文件的「打开方式」

  • r:默认,读取,打开文件并读取,文件不存在则报错
  • a:修改,打开文件准备修改,文件不存在则创建
  • w:写入,打开文件准备写入,文件不存在则创建
  • x:创建文件,文件存在则报错

「打开模式」

  • t:默认,文本模式
  • b:二进制模式(图像)

「读取」 a.txt
file = open('a.txt', 'rt')
print(file)

  
 
  • 1
  • 2

输出:

<_io.TextIOWrapper name='a.txt' mode='rt' encoding='cp936'>

  
 
  • 1

2. 创建文件

在当前目录创建文件 b.txt

open('b.txt', 'x')

  
 
  • 1

检查左侧目录,会多出一个文件 b.txt

3. 读取文件

read() 函数用来读取文件内容

语法

read( n )

  
 
  • 1

参数

  • n:可选,读取几个字符
  • 返回值:读取的内容

3.1 读取所有文件

读取文件 a.txt 的全部内容

file = open('a.txt', encoding='utf-8')
text = file.read()
print(text)

  
 
  • 1
  • 2
  • 3

输出:

第一行
第二行
第三行
第四行
……

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

3.2 读取指定字符

读取文件 a.txt 的前 6个字符

file = open('a.txt', encoding='utf-8')
text = file.read(6)
print(text)

  
 
  • 1
  • 2
  • 3

输出:

第一行
第二

  
 
  • 1
  • 2

3.3 读取指定行

readline() 函数可以读取一行内容
读取文件 a.txt 第一行内容

file = open('a.txt', encoding='utf-8')
text = file.readline()
print(text)

  
 
  • 1
  • 2
  • 3

输出:

第一行

  
 
  • 1


for 3
file = open('a.txt', encoding='utf-8')
i = 0
while i < 3:
    text = file.readline()
    print(text)
    i += 1

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出:

第一行

第二行

第三行

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

3.4 遍历文件

使用 for 循环遍历文件,「逐行读取」文件内容

file = open('a.txt', encoding='utf-8')
for text in file:
    print(text)

  
 
  • 1
  • 2
  • 3

输出:

第一行
第二行
第三行
第四行
……

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

3.5 关闭文件

close() 函数可以关闭文件,如果文件未关闭,对文件的「修改」可能会「不生效」

file = open('a.txt', encoding='utf-8')
print(file.read(3))
file.close()

  
 
  • 1
  • 2
  • 3

输出:

第一行

  
 
  • 1

4. 修改文件

write() 函数可以向文件中写入内容
修改文件内容时,需要指定 open() 函数的参数

  • a:「追加」内容至文件末尾
  • w:「写入」内容至文件中(覆盖原文件内容)

向文件 a.txt 中追加内容

file = open('a.txt', 'a', encoding='utf-8')
file.write('新添加的内容')
file.close()

# 修改模式的文件不可读,需重新打开文件
file = open('a.txt', 'r', encoding='utf-8')
print(file.read())

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

第一行新添加的内容

  
 
  • 1


a.txt 「覆盖」
file = open('a.txt', 'w', encoding='utf-8')
file.write('新添加的内容')
file.close()

# 修改模式的文件不可读,需重新打开文件
file = open('a.txt', 'r', encoding='utf-8')
print(file.read())

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

新添加的内容

  
 
  • 1

5. 删除文件

exists() 函数可以判断「文件是否存在」
remove() 函数可以根据文件名「删除文件」

import os

if os.path.exists('a.txt'):
    print('文件存在,删除文件')
    os.remove('a.txt')
else:
    print('文件不存在,无法删除')

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

文件存在,删除文件

  
 
  • 1

6. 删除目录

rmdir() 函数可以删除目录(文件夹)

import os

os.rmdir('mulu')

  
 
  • 1
  • 2
  • 3

观察左侧目录,文件夹 mulu 已被删除

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/122268814

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。