python--基础4 (文件操作)

news/2025/2/26 3:16:44

python文件操作步骤

#第一步:调用文件
f=open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='gbk')
#第二部:使用文件
print(f.readlines())
#第三部:关闭文件
f.close()

#python中内置函数with可以自动关闭文件:
with open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='utf-8')as f:
    print(f.readlines())

三种调用文件的路径的写法

open(r'D:\untitled\venv\Include\blacklist.txt')  #r --read  只读,代表' '内的字符串没有其他含义不进行转义
open('D:\\untitled\\venv\\Include\\blacklist.txt')
open('D:/untitled/venv/Include/blacklist.txt')

读(rt)

read读取全部内容

f.read(int)可指定参数int, ‘rt’ --->参数int代表读取int个字符 'rb'--->参数int代表读取int个字节

with open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='gbk')as f:
    print(f.read())

...运行结果

艾妮
你好
hello
world

readline按行读取

with open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='gbk')as f:
    print(f.readline(2))

...运行结果

艾妮

readlines把内容以列表形式展现

with open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='gbk')as f:
    print(f.readlines())

...运行结果

['艾妮\n', '你好\n', 'hello\n', 'world\n']

覆盖写(wt)

with open(r'D:\untitled\venv\Include\blacklist.txt', 'w', encoding='utf-8')as f:
    f.write('你好不好')
with open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='utf-8')as f:
    print(f.readlines())

...运行结果

['你好不好']

追加写appand(at)

with open(r'D:\untitled\venv\Include\blacklist.txt', 'a', encoding='utf-8')as f:
    f.write('艾妮'+'\n')
with open(r'D:\untitled\venv\Include\blacklist.txt', 'r', encoding='utf-8')as f:
    print(f.read())

...运行结果

你好不好
艾妮
艾妮
艾妮

(rb,wb,ab)

rb:read bytes 二进制字节方式读取
wb:write bytes 二进制字节方式覆盖写
ab:appand bytes 二进制字节方式追加写

示例:

with open(r'D:\untitled\venv\Include\blacklist.txt', 'wb')as f:
    f.write('艾妮'.encode('utf-8'))
with open(r'D:\untitled\venv\Include\blacklist.txt', 'ab')as f:
    f.write('艾妮'.encode('utf-8'))
with open(r'D:\untitled\venv\Include\blacklist.txt', 'rb')as f:
    print(f.read())
    f.seek(0,0)       #把光标移动到开头
    print(f.read().decode('utf-8'))

...运行结果

b'\xe8\x89\xbe\xe5\xa6\xae\xe8\x89\xbe\xe5\xa6\xae'
艾妮艾妮

文件的光标移动

f.seek(0,0) 后面的0代表把光标移动到开头
f.seek(0,1) 后面的1代表相对位置
f.seek(0,2) 后面的2代表把光标移动到末尾

示例:# tail -f message | grep '404'

import time
with open(r'C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt', 'rb') as f:
    f.seek(0, 2)
    while True:
        data = f.read()
        if b'404' in data:
            print(data.decode('utf-8'))
        else:
            time.sleep(0.2)

1675881-20190611183126959-1347025621.jpg

转载于:https://www.cnblogs.com/du-z/p/11027525.html


http://www.niftyadmin.cn/n/3369857.html

相关文章

teamviewer 64 linux,apt使用 64位系统安装Teamviewer,但我得到了一个依赖错误

问题:我试图安装Teamviewer,但是我得到一个依赖错误,我收到此错误:Unpacking teamviewer (from teamviewer_linux_x64.deb) ...dpkg: dependency problems prevent configuration of teamviewer:teamviewer depends on lib32asoun…

虚拟dom应用

vdom如何应用&#xff0c;核心api是什么1、介绍snabbdom&#xff08;开源社区用的多&#xff0c;vue2用的是他&#xff09;首先回顾下之前的vdom格式真实的dom<body><ul id"list"><li class"item">item 1</li><li class"i…

C#编程的一般注意事项

区分大小写 所有变量和关键字都是区分大小写的。 命名约定 ECMA标准提供了C#代码所要遵循的命名约定原则。通过遵循严格的命名策略&#xff0c;不仅可以增强程序的一致性&#xff0c;而且可以最大程度地减少通常因随意命名而导致的大小写错误。表2ˉ1对一些较为重要的建议做了…

c 语言基础教程答案,C 语言基础教程(我的C之旅开始了)[九]

1. 自增运算符(Increment Operator)自增运算符 使操作数的值增 1。 可以置于操作数前面&#xff0c;也可以放在后面。例如&#xff1a;n ;n ;这两个语句产生的结果都是使 n 增 1&#xff0c;可以说没什么区别。使用以下语句得到的效果也是一样的&#xff1a;n n 1 ;尽管上面…

C# 布局容器类

从ContainerControl类继承的子类作为容器窗体&#xff0c;可以容纳除Form类对象外的其余窗体对象。 在所有容器窗体内&#xff0c;最基本的就是顶级容器Form类以及面板容器Panel类。这两者的主要区别为&#xff1a;前者具有Windows标准框架&#xff08;标题栏&#xff0c;最大 …

课程学习 - 人类疾病导论 | Introduction To Human Disease

完美人类假设&#xff1a;一类人&#xff0c;具有最完美的基因组&#xff0c;享受最健康的环境和饮食&#xff0c;同时拥有最健康的思想情绪&#xff0c;最终以最长的寿命&#xff0c;自然死亡。 自然死亡是自然生命最终的归宿&#xff0c;这是写在目前基因组里的铁律&#xff…

c语言串口数据解码软件,请高手指教 红外串口解码 返回的数据乱码

已结贴√问题点数&#xff1a;2 回复次数&#xff1a;2请高手指教 红外串口解码 返回的数据乱码刚做了个红外遥控解码,初学编程,写入C51程序如下,通过串口助手调试返回的遥控数据无规则,请哥哥姐姐们指点#include"reg52.h"#define uchar unsigned char#define uint u…

软工团队答辩

1.队员信息&#xff1a; 陈雄 学号&#xff1a;1700509024 博客园链接&#xff1a;https://www.cnblogs.com/bearchan/ 廖鹏辉 学号&#xff1a;1700802007 博客园链接&#xff1a;https://www.cnblogs.com/liaopenghui/ 王生睿  学号&#xff1a;1700802028 博客园链接…