python3 文件的读取和通用操作
来源:互联网 发布:知乎 长青春痘 编辑:程序博客网 时间:2024/05/22 13:40
import os # 当前操作目录,os.chdir() 切换操作目录
>>> import os
>>> os.getcwd()
'C:\\ProgramFiles\\Python36'
open(“路径”,“模式“,encoding= “编码”)
(1.)路径
1. ”c:\\path\\data.txt”
2. r”c:\path\data.txt”
3. “data.txt”
(2) 模式
1. 文本
“r” # 只读
“w” # 写
“rw” # 读写
“r+” # 读写
“w+” # 先创建新文件,再读
“a” # 增加
2. 二进制
“*b” # 二进制的读取
通用操作
读取
num= (open("names.txt","r",encoding="utf-8").read())#打开文件,并读取
# "r""w"文件的读取不能同时操作
num = (open("names.txt","w",encoding= "utf-8"))num.write("中国\n美国")# python默认’w’写入文件,会替换掉原有文档
# 如果是在原文件上进行内容的追加,使用"a"(append的意思)
num= (open("names.txt","a",encoding="utf-8"))
num.write("中国\n日本")
num = (open("names.txt","r",encoding= "utf-8"))num1 = (num.readline()) # 读取文件的一行# 读取多行用for循环for i in range(5): # 读取文件5行 print(num.readline())
# 注意区别 readline(),readlines()是循环文件
# readlines(),是加载整个文件,所以只适合读小文件
forindex,i in enumerate(num.readlines()): # 读取到第5行提示
if index ==5:
print("__到第五行啦__")
continue
print(index,i,end="")
# 大小文件通吃的方法就是一行内存只保存一行数据
num= (open("names.txt","r",encoding="utf-8"))
count = 0
for i in num:
if count == 5:
print("----到第五行啦----")
count +=1
continue
print(i,end="")
count += 1
.read() #一次性读取所有文本
f =open(r"e:\python\demo\course.txt","r")
>>>f.read()
'fengsenwangxueyatom'
.read(n) # n代表读取指定的字符
>>>f.read(2)
'fe'
>>>f.read(6) # 指针并没有到末尾,可以接着读取
'ngsenw'
.readlines() # 读取行到列表
>>>a = f.readlines()
>>>a
['fengsenwang\n','xueyatom']
>>>f.seek(0)
0
fengsenwang
xueyatom
# .encoding 文件的字符编码
print(num.encoding) # 打印文件的字符编码
num= (open("names.txt","r", encoding="utf-8"))
print(num.tell()) # 查看指针所在的位置
.seek(n) # 指针归零
>>>f.read # 再次提取,提示错误,需要把提取指针归零
<built-inmethod read of _io.TextIOWrapper object at 0x00000193D8CA51F8>
>>>f.seek(0) # 提取指针归零
0
>>>f.read()
'fengsenwangxueyatom'
>>>print(f.read()) # 文件打印换行
fengsenwang
xueyatom
.close() # 关闭文件链接
>>>f.close() # 关闭读取文件
写入
1. write() 写入字符串
>>> scores =open("youpintest.txt","w",encoding= "utf-8") # 写入文件的参数
>>> scores.write("机构:威科姆公司\n网址:www.yjt361.com") #写入文件的内容
26 # 写入文件的字符的数量
>>>scores.close() #确认写入完毕,否则文件打开没有内容
2. .flush() 不关闭文件情况下输出缓存到磁盘
>>>people_names = ['tom','jerry','mike','peter']
>>>m = open("names.txt",'w',encoding='utf-8')
>>>m.writelines(people_names)
>>> m.flush() # 强制刷新到磁盘
# 类似进度条的功能
importsys,time
for i in range(20):
sys.stdout.write("*")
sys.stdout.flush() # 及时刷新 和print()有区别
time.sleep(0.2)
# 文件内容的替换,不覆盖,新增
num= (open("names.txt","r", encoding="utf-8")) # 被替换的文档
num_new = (open("nemes_new","w",encoding="utf-8")) # 新建文档
for i in num: # 循环num 内容
if "中国"in i: # 寻找便跟内容
i =i.replace("中国","88888") # 替换
num_new.write(i) # 替换内容写进文档
num.close()
num_new.close()
# 给原列表每个字符后面添加 \n
>>>n = [name+"\n" for name in people_names]
>>>n # 给原列表每个字符后面添加 \n
['tom\n','jerry\n', 'mike\n', 'peter\n']
>>>t = open('names.txt','w',encoding='utf8')
>>>t.writelines(n) # python默认’w’写入文件,会替换掉原有文档
# 追加文件的内容,
>>>e = ['fengsen','wangxueya']
>>>t = open('names.txt','a',encoding='utf-8')
>>>t.writelines(e) #不删除原有的内容,写入的时候用’a’
>>>t.flush()
>>>t.close # 养成好习惯,结束写入,关闭文件
# 默认关闭文件的格式
>>>with open("names.txt",'r',encoding='utf-8')as t:
for line in t:
print(t)
>>>with open("names.txt",'r',encoding='utf-8')as t:
for line in t:
print(line)
tom
jerry
mike
peter
fengsenwangxueya
>>>with open('names.txt','w',encoding='utf8')as t:
t.write('hello\n')
t.write('world\n')
把列表放入在文件中
考虑一下list里含有数字:,用str()函数转一下,看你要处理的数据了
>>>l=["A","B","C","D"]
>>>f=open("k.txt","w")
>>>f.write(str(l))
>>>f.close()
>>>
这样的输出就是一个list ["A","B","C","D"]
- python3 文件的读取和通用操作
- python3的文件操作
- Python3网络编程2--网络文件的写入和读取
- python3 文件和文件夹操作
- python3读取csv和xlsx文件
- python3的文件操作1
- python3的文件操作2
- Python3对文件的操作
- Python3文件的简单操作!
- python3 关于文件的操作
- Python3学习(31)--文件和目录的操作
- 读取txt文件和ArrayList的操作
- 读取csv文件的指定行 python3
- 如何实现python3的文件读取
- 文件的读取操作
- 读取文件的操作
- 【Python3】操作文件,目录和路径
- 通用的IO流文件读取工具
- 解决maven工程compile failure的问题
- Winform开发中使用FastReport基本操作创建与设计
- Spark集群搭建
- Failed to resolve directive: el vue2报错 (vue v-sl)
- Oracle systemstate dump介绍
- python3 文件的读取和通用操作
- php接口开发简单实例
- jstat
- jquery文档操作
- 【资料合集】2017云栖大会•苏州峰会回顾合集:PDF下载
- Spring中bean的作用域
- spring boot 添加数据源 整合 mybaties (三)
- qt 调用 c++ dll 返回char* 乱码问题
- 深入理解 JavaScript 异步系列(1)——基础