zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    常量
    html5+css3 background-clip 技巧
    AJAX小结
    使用jquery来完成AJAX操作
    linux命令 cp 递归复制 带权限复制
    html标记语言 --超链接
    html标记语言 --图像标记
    html标记语言 --文本标记
    [转]linux如何修改文件或目录的权限(chmod)
    html标记语言 --格式标记
  • 原文地址:https://www.cnblogs.com/yxtz271828/p/8992091.html
Copyright © 2011-2022 走看看