当前位置:   article > 正文

Python基础-文件操作_python2.7 读取文件

python2.7 读取文件

文件操作的作用

文件的基本操作

打开

读写

关闭

文件备份

文件和文件夹的操作

二、文件的基本操作

2.1文件操作步骤

1、打开文件

2、读写等操作

3、关闭文件

注意:可以只打开和关闭文件,不进行任何读写操作

1、打开

在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法:

open(name, mode)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)

mode:设置打开的模式(访问模式):只读、写入、追加等

体验文件操作

  1. # 1、打开文件 open()
  2. f = open('test.txt', 'w')
  3. # 2、读写操作 write() read()
  4. f.write('aaaaa')
  5. # 3、关闭文件 close()
  6. f.close()

访问模式特点:

主访问模式包括三个: r w a

r,以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式

  1. # r,如果文件不存在,就会报错,不支持写入操作,只支持只读
  2. f = open('test.txt', 'r')
  3. # f.write('aa')
  4. f.close()

w,打开一个文件只用于写入,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。

  1. # w 如果文件不存在,就会生成一个新的文件,写入的内容会覆盖以前的内容
  2. f = open('1.txt', 'w')
  3. f.write('bbbb')
  4. f.close()

a 打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,也就是新的内容会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

  1. # a 如果文件不存在,就会生成一个新的文件,写入的内容会追加到原有内容后面
  2. f = open('2.txt', 'a')
  3. f.write('dddd')
  4. f.close()
访问模式参数是否可以省略,可以省略,省略表示访问模式为 r
  1. # 访问模式参数是否可以省略,可以省略,省略表示访问模式为 r
  2. f = open('1.txt')
  3. f.close()

三、文件读取的操作:

1、read()

文件对象.read(num)

num表示要从文件中读取的数据的长度,单位是字节,如果没有传num,那么表示读取文件中的所有数据。

  1. f = open('test.txt', 'r')
  2. print(f.read())
  3. f.close()
  4. # 输出
  5. # aaaaa
  6. # bbbbb
  7. # ccccc
  8. # ddddd
  9. # eeeee

2、readlines()

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

  1. f = open('test.txt', 'r')
  2. print(f.readlines())
  3. f.close()
  4. # 输出['aaaaa\n', 'bbbbb\n', 'ccccc\n', 'ddddd\n', 'eeeee\n']

3、readline()

  1. f = open('test.txt', 'r')
  2. print(f.readline())
  3. print(f.readline())
  4. f.close()
  5. # 输出 aaaaa
  6. # bbbbb

文件访问模式特点

模式描述        
r以只读方式打开文件,文件的指针将会放在文件的开头,这个是默认模式
rb以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头,这个是默认模式
r+        打开一个文件用于读写,文件指针将会放在文件的开头
rb+以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头
w打开一个文件只用于写入,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件
wb以二进制格式打开一个文件只用于写入,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件
w+打开一个文件用于读写。如果该文件已存在则打开文件,从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建文件
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
a打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,也就是新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

但凡是带 b  都是以二进制格式打开文件的,但凡带 + 号的都是可读可写模式

对于带 r  的,但凡文件不存在,都报错,对于带w的,文件不存在,就创建新的文件

文件指针就是光标。

 r+, r没有该文件则报错,文件指针在开头,所以能读取出来数据

w+, w没有该文件会新建文件,w特点,文件指针在开头,用新内容覆盖原有内容

a+, 没有该文件会新建文件:文件指针在结尾,无法读取数据(文件指针后面没有数据)

seek()

作用:用来移动文件指针,

语法如下:

文件对象.seek(偏移量,起始位置)

起始位置:

  0:文件开头

  1:当前位置

  2:文件结尾

例如 使用a 文件访问模式,指针在最后面,然后调用seek(),使指针前移,可以访问出数据

  1. """
  2. 语法:文件对象.seek(偏移量,起始位置) 0 开头 1 当前 2 结尾
  3. 目标:
  4. 1、r 改变文件指针位置,改变读取数据开始位置或把文件指针放结尾(无法读取数据)
  5. 2、a 改变文件指针位置,做到可以读取数据
  6. """
  7. f = open('test.txt', 'r')
  8. # f.seek(3, 0)
  9. f.seek(0, 2)
  10. con = f.read()
  11. print(con)
  12. # 输出
  13. # aa
  14. # bbbbb
  15. # ccccc
  16. # ddddd
  17. # eeeee
  18. # 输出 空
  1. f = open('test.txt', 'a+')
  2. f.seek(0, 0)
  3. con = f.read()
  4. print(con)
  5. # 输出
  6. # aaaaa
  7. # bbbbb
  8. # ccccc
  9. # ddddd
  10. # eeeee

四、文件备份

1、用户输入目标文件 

2、规划备份文件的名字

修改名字

3、备份文件写入数据(数据和原文件一样)

打开文件

写入数据

关闭文件

  1. # 1、接收用户输入目标文件
  2. old_name = input('请输入要备份文件的名字')
  3. print(old_name)
  4. print(type(old_name))
  5. # 2、规划备份文件名
  6. index = old_name.rfind('.')
  7. if index > 0:
  8. print(index)
  9. new_name = old_name[:index] + '[备份]' + old_name[index:]
  10. print(new_name)
  11. # 输出test[备份].txt
  12. # 3、备份写入数据
  13. # 3.1 打开原文件和备份文件
  14. old_f = open(old_name, 'rb')
  15. new_f = open(new_name, 'wb')
  16. # 3.2 原文件读取,备份文件写入
  17. while True:
  18. con = old_f.read(1024)
  19. if len(con) == 0:
  20. break
  21. new_f.write(con)
  22. # 3.3 关闭文件
  23. old_f.close()
  24. new_f.close()
  25. else:
  26. print('输入的文件名错误,请重新输入')

五、文件和文件夹的操作

文件和文件夹的操作要借助os模块里的相关功能,具体步骤如下:

1、导入os模块

import os

2、使用os模块相关功能

os.函数名()

2.1  文件重命名

os.rename(目标文件名,新文件名)

  1. import os
  2. # 1rename(),重命名
  3. os.rename('test[备份文件].txt', '11.txt')

os.rename() 重命名文件夹,格式和重命名 文件一样

os.rename('aaa', 'ccc')

2.2 删除文件

os.remove(目标文件名)

  1. # 2remove(),删除文件
  2. os.remove('11.txt')

2.3创建文件夹

os.mkdir(文件夹名字)

  1. # 3、mkdir创建文件夹
  2. os.mkdir('aaa')

2.4删除文件夹

os.rmdir(文件夹名字)

os.rmdir('aaa')

2.5获取当前目录

os.getcwd()

print(os.getcwd())

2.6改变默认目录

os.chdir(目录)

  1. os.mkdir('aaa')
  2. os.chdir('aaa')
  3. os.mkdir('bbb')

2.7获取目录列表

os.listdir(目录),返回一个列表

  1. print(os.listdir())
  2. # 输出 ['01-体验文件操作.py', '02-主访问模式特点.py', '03-读取函数之read().py', '04-访问模式特点02.py']
  1. print(os.listdir('aaa'))
  2. ['bbb']

获取aaa文件夹下面的目录

3、应用案例

批量修改文件名,即可以添加指定字符串,又能删除指定字符串

步骤:

3.1 先获取目录里的所有文件

3.2 构造新的文件名

3.3 重命名

  1. import os
  2. # os.rename('ccc', 'aaa')
  3. file_name = os.listdir('aaa')
  4. print(file_name)
  5. for i in file_name:
  6. new_name = 'python_' + i
  7. os.rename(i, new_name)

优化后,批量修改名字和批量删除名字

  1. import os
  2. flag = 1
  3. # os.rename('ccc', 'aaa')
  4. file_name = os.listdir('aaa')
  5. print(file_name)
  6. for i in file_name:
  7. if flag == 1:
  8. new_name = 'python_' + i
  9. elif flag == 2:
  10. num = len('python_')
  11. new_name = i[num:]
  12. os.rename(i, new_name)

六、总结

文件操作步骤

6.1 打开:

文件对象 = open(目标文件,访问模式)

6.2 操作:

文件对象.read()

文件对象.readlines()

文件对象.readline()

文件对象.write()

seek()  改变指针位置

6.3  关闭

文件对象.close()

6.4 主访问模式

r 读,文件不存在则报错,文件指针在开头

w 写,文件不存在则创建文件 ,文件指针在开头,会把原数据覆盖掉

a 追加,文件指针在结尾,追加内容

6.5 文件和文件夹操作

导入 os模块

重名名:os.rename()

获取当前目录:os.getcwd()

获取目录列表: os.listdir()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42351
推荐阅读
相关标签
  

闽ICP备14008679号