Python文件的读写

一、写数据

1 f = open("hello.txt", "w")
2 f.write("hello world python!")
3 f.close() #关闭文件必不可少

如果文件不存在就创建,如果存在就清空里面的内容,然后写入数据。

二、读数据

1 f = open("hello.txt", "r")
2 content = f.read() 
3 
4 print(content)
5 f.close() #关闭文件必不可少

要找个变量将读取的内容存储起来,如果没有向read后的括号传入数据,则默认读取整个文件的内容,与readlines()的功能一致,使用readlines()

返回的是一个列表,每一行数据为一个元素;另外readline()每次只读取一行数据. 如果传入一个值比如1,就读取一个字节的数据. 如果使用了多次

读数据操作,那么后来读取的数据是从上次读完后的位置开始的.


三、文件的随机读写
1、使用tell()获取当前读写的位置

 1 f = open("匿名函数.py", "r", encoding='UTF-8') #文件中含有中文时加上 encoding='UTF-8'
 2 str = f.read(4)
 3 
 4 print("读取的数据是:"+str)
 5 
 6 position = f.tell() #获取当前读写的位置
 7 print(position)
 8 
 9 str = f.read(4) #在接着读取4字节的数据
10 print(str)
11 
12 position = f.tell() #获取当前读写的位置
13 print(position)
14 
15 f.close()

2、定到某个位置
如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()
seek(offset,form) 有两个参数:
 offset:偏移量
 from:方向
   0:表示文件开头
   1:表示当前位置
   2:表示文件末尾

 1 f = open("匿名函数.py", "r", encoding='UTF-8') #文件中含有中文时加上 encoding='UTF-8'
 2 str = f.read(10)
 3 
 4 print("读取的数据是:"+str)
 5 
 6 #查找当前位置
 7 position = f.tell()
 8 print(position)
 9 
10 #重新设置位置
11 f.seek(5,0)
12 
13 #查找当前位置
14 position = f.tell()
15 print(position)
16 
17 f.close()

四、文件的相关操作

1、重命名

1 import os
2 
3 os.rename("论文第一版.txt", "论文最终版.txt")

2、删除文件

1 import os 
2 
3 os.remove("论文第一版.txt")

五、文件夹的相关操作

1、创建文件夹

1 import os
2 
3 os.mkdir("hello")

2、获取当前目录

1 import os
2 
3 os.getcwd()

3、改变默认目录

1 import os
2 
3 os.chdir("../")

4、获取目录列表

1  import os
2 
3 os.listdir("./")

5、删除文件夹

1 import os 
2 
3 os.rmdir("hello")

应用一:制作文件的备份(就是文件的复制),不适用于大文件的备份

步骤:
1.获取要复制的文件名(xxx.txt) 通过input()输入
2.打开这个文件("r")
3.创建一个文件 xxx[复件].txt
4.从原文件中读取数据
5.将读取的文件数据写入到新文件中
6.关闭两个文件

 1 f_old_name = input("请输入要备份的文件名(要加后缀名):")
 2 
 3 f_read = open(f_old_name, "r")
 4 
 5 position = f_old_name.rfind(".")
 6 
 7 f_new_name = f_old_name[0:position] + "[复件]" + f_old_name[position:]
 8 
 9 f_write = open(f_new_name, "w")
10 
11 content = f_read.read()
12 
13 f_write.write(content)
14 
15 f_read.close()
16 f_write.close()

升级版,适用于大文件的备份、读取

 1 f_old_name = input("请输入要备份的文件名(要加后缀名):")
 2 
 3 f_read = open(f_old_name, "r", encoding='UTF-8') #文件中含有中文时加上 encoding='UTF-8'
 4 
 5 position = f_old_name.rfind(".")
 6 
 7 f_new_name = f_old_name[0:position] + "[复件]" + f_old_name[position:]
 8 
 9 f_write = open(f_new_name, "w")
10 
11 #用循环改进
12 while True:
13   content = f_read.read(1024) #一次读取1024字节
14 
15   if len(content) == 0: #当读取的内容为空时退出循环
16     break
17 
18   f_write.write(content)
19 f_read.close() 20 f_write.close()

应用二:批量修改文件名

 1 #获取一个要重命名的文件名字
 2 folder_name = input("请输入文件夹的名称:")
 3 
 4 #获取那个文件夹中所有的文件名
 5 file_names = os.listdir(folder_name)
 6 
 7 #第一种方法
 8 os.chdir(folder_name)
 9 
10 for file_name in file_names:
11     print(file_name)
12     os.rename(file_name, "京东出品-"+file_name)
13 
14 
15 #第二种方法
16 for file_name in file_names:
17     #print(file_name)
18     old_file_name = "./"+ folder_name + "/" +file_name 
19     new_file_name = "./"+folder_name+"/"+"[京东出品]-"+file_name
20     os.rename(old_file_name, new_file_name)

猜你喜欢

转载自www.cnblogs.com/yxtz271828/p/8992091.html