首页 > 其他分享 >文件处理和操作

文件处理和操作

时间:2023-12-05 19:47:54浏览次数:36  
标签:fp 文件 处理 data list print 操作 line open

文件操作

文件操作三种方式

  • write) 模式 : write 覆盖写模式,如果你文件中有内容,直接覆盖掉写进去新的内容

  • a(append) 模式 : write 追加写模式,如果你文件中有内容,再原有内容的基础上追加内容

    with open('01.txt','a',encording='utf8') as f:
        fp.write('my name is tony'+'\n')
        fp.close()
    
  • r(read) 模式 : read 读内容模式,可以将文件中的内容读出来

控制文本读写格式

  • t 模式 : 文本类型。读内容和写内容都是字符串格式

    with open(r'01.txt','rt',encoding='utf8') as fp:
        data=fp.read()
        for line in data.split(':'):
            print(line,type(line))
    
  • b 模式 :二进制模式。读内容和写进去的内容必须都是二进制格式

文件拷贝

  • 要求:
    • 输入一个文件地址 --- 把文件内容读出来
    • 输入一个文件地址 --- 把当前文件内容拷贝到新的地址和新的文件里面
    path_start = input("原始地址:>>>>").strip()
    path_end = input("目标地址:>>>>").strip()
    modle = {1: 'wb', 2: 'rb'}
    print(f"{path_start} to {path_end} :>>>> 已开始!")
    with open(path_start, modle[2]) as read_f, open(path_end, modle[1]) as write_f:
        write_f.write(read_f.read())
        print(f"{path_start} to {path_end} :>>>> 已完成!")

读操作

  • readline :只读一行

    with open('01.txt', 'r', encoding='utf-8') as fp:
    	data = fp.readline()
    	print(data)
        for line in data:
            print(line)
    

控制文件内光标移动

  • 【1】控制读的字符个数

    with open('01.txt', mode='rt', encoding='utf-8') as f:
         data = f.read(6)  # 读取3个字符
         print(data)
    
  • 【2】seek方法

    • 以文件开头作为参照

    • 以当前我所在位置作为参照

    • 以文件末尾的位置作为参照

       with open('02.txt', 'rt', encoding='utf-8') as fp:
           # 英文占一个字节 (一个字符)
           # 中文占三个字节 (一个字符)
           fp.seek(6, 0)
           print(fp.tell())  # 6
           print(fp.read())  # 从开头开始算,移动6个字节,再从6字节这个位置向后读数据
      

    文件内容替换

    # 原来的文本内容如下
    # 张一蛋     山东    179    49    12344234523
    # 李二蛋     河北    163    57    13913453521
    # 王全蛋     山西    153    62    18651433422
    
    # 修改后的内容如下
    # 张一蛋(妇女主任)  山东    179    49    12344234523
    # 李二蛋(村长)     河北    163    57    13913453521
    # 王全蛋(书记)     山西    153    62    18651433422
    
    with open('04.txt', 'r', encoding='utf-8') as file:
    	#一行一行读取
        data = file.readlines()
    line_list = []
    for line in data:
        if '张一蛋' in line:
            line = line.replace(line.split()[0], f'{line.split()[0]}(妇女主任)')
        elif '李二蛋' in line:
            line = line.replace(line.split()[0], f'{line.split()[0]}(村长)')
        elif '王全蛋' in line:
            line = line.replace(line.split()[0], f'{line.split()[0]}(书记)')
        line_list.append(line)
    print(line_list)
    with open('04.txt', 'w', encoding='utf-8') as fp:
        fp.writelines(line_list)
    

列表生成式

  • 列表生成式: 新的列表,每个元素都去除掉了空格

    people=['张三 ','  李四','王五']
    list=[i.strip() for i in people]
    
    list=[]
    for i in people:
        list.append(i.strip())
    print(list)    
    #输出:['张三', '李四', '王五']
    
  • 列表生成式 : 遍历两个列表并取出每一个列表的元素 做乘法运算

    list_one = [x * y for x in test_1 for y in test_2]
    print(list_one)
    
  • 列表生成式 : 遍历两个列表并取出每一个列表对应索引的元素 做乘法运算

    list = [test_1[i] * test_2[i] for i in range(len(test_1))]
    print(list)
    
  • 列表生成式 : 遍历两个列表并取出每一个列表对应索引的元素 做乘法运算

    list = [x * y for x, y in zip(test_1, test_2)]
    print(list)
    
  • 字典生成式

    num_dict = {}
    for key in range(3):
        for value in range(2):
             num_dict[key] = value
    print(num_dict)
     my_dict = {key: value for key in range(3) for value in range(2)}
     print(my_dict)
    # {0: 1, 1: 1, 2: 1}
    
    tuple_list = [('name', 'hope'), ('age', 18), ('hobby', 'piano')]
    dict = {key: value for key, value in tuple_list}
    print(dict)
    

标签:fp,文件,处理,data,list,print,操作,line,open
From: https://www.cnblogs.com/banchengyanyu/p/17877989.html

相关文章

  • 主动控制文件内指针移动
    主动控制文件内指针移动文件内指针的移动时以Bytes为单位的,但是在t模式下时read(n),n以字符美单位的。#文件内指针的移动时以Bytes为单位的,但是在t模式下时read(n),n以字符美单位的withopen('02.txt','rt',encoding='utf-8')asf:res=f.read(3)#hel读取三个字符......
  • 文件操作系统
    【一】文件操作基本流程#1.打开文件,由应用程序向操作系统发起系统调用open(...),操作系统打开该文件,对应一块硬盘空间,并返回一个文件对象赋值给一个变量ff=open('a.txt','r',encoding='utf-8')#默认打开模式就为r#2.调用文件对象下的读/写方法,会被操作系统转换为读/写硬盘......
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
    硬件型号驱动情况主板AtermiterX99TurboD4处理器IntelXeonE5-2630v3已驱动内存DesktopDDR42666MHz已驱动硬盘NetacNV7000已驱动显卡AMDRadeonRX5700xt已驱动声卡瑞昱@英特尔HighDefinitionAudio控制器ALC897已驱动网卡LucyRTL8125已驱动无线网卡+蓝牙BroadcomBC......
  • showdoc升级操作步骤
    操作前一定要先备份好环境及文件找一个安装好docker其他的centos7.9的服务器,使用下面命令下载showdoc镜像dockerpullstar7th/showdoc:latest#中国大陆镜像安装命令(安装后记得执行dockertag命令以进行重命名)dockerpullregistry.cn-shenzhen.aliyuncs.com/star7th/showd......
  • 金蝶云星空单据编辑界面,不允许批量填充操作【分条件】
    一、前提说明上一个文章的设计,不管是填充值,还是清空值都一律不允许,但是有时候业务就允许清空,不允许填充值而已。 二、案例演示售后单,明细信息单据体,物料编码字段为空,允许填充,物料编码不为空,禁止批量填充。 三、开发设计编写表单插件,在BeforeEntryBatchFill事件。publico......
  • Linux-01常用文件管理命令
    文件系统文件系统结构tip:[start]仅举例常见内容tip:[end]/根目录bin可执行文件命令(ls,...)etc配置文件(nginx代理服务器配置文件,...)var日志log文件lib存头文件/安装包home用户的家目录(/home/acs,...)proc进程信息文件(cpuinfo系统资源,...)路径......
  • Python数字处理:掌握核心函数与技巧
    在数据分析、科学计算和自动化脚本中,数字处理是Python编程的一个核心部分。Python提供了一系列内建函数和标准库,使得数字处理变得既简单又强大。在本篇博客中,我们将深入探讨Python中的数字处理函数,并提供一些实用的技巧,以帮助你提高编程效率和精度。1.基本数学函数Python的内建函......
  • BigDecimal处理Double类型精度问题
    最近发现工程里出现金额精度问题,记录下使用区别:publicstaticvoidmain(String[]args){Doublea=0.1;BigDecimalb=newBigDecimal(a);BigDecimalc=BigDecimal.valueOf(a);System.out.println("bis:"+b);System.out......
  • Linux文件管理
    通过pwd命令查看当前工作目录的绝对路径通过cd命令切换目录 mkdir命令创建一个空白目录,通过ls命令查看目录和文件 通过touch创建一个空白文件,使用echo向空白文件内写入内容,使用cat查看文件内容 使用rm命令删除文件,使用rmdir命令删除空白文件夹 ......
  • 基于SpringBoot实现文件的上传下载
    (一)概述文件上传下载一直都是一个系统最常用也是最基本的功能点,刚好最近公司的项目上有用到这个功能,于是自己就用SpringBoot也写了一个简化的版本,已实现文件的上传和下载功能。(二)创建项目首先创建一个SpringBoot的项目,接着引入相关的依赖,因为涉及到数据库的操作,所以依赖会比较......