python 文件的读写

# open(r'e:user iuhanyangxxxxa.txt',)#原字符  操作文件 加r会读出来 

f = open('a.txt','a+',encoding='utf-8') #三种模式  有中文要加上utf-8

读一共三种方式  r模式只能读不能写   只读模式

#文件存在     
#文件不存在 报错
#能不能读,能不能写 能读,不能写
f = open('a.txt',encoding='utf-8')  
print(f.read()) 读不到会报错
f.close()
f = open('a.txt',encoding='utf-8')
print(f.readlines()) 读不到也会报错
f.close()
f = open('a.txt',encoding='utf-8')
print(f.readline())
f.close()

read和readlines的区别 read取出来是字符串readlines是数组
#文件存在     
#文件不存在 会创建一个文件
#能不能读,能不能写 不能读,能写 写时候会清空在末尾写
readline  只读一行
写的方式  两种方式 write writelines w模式如果没文件会创建一个有文件情况下会覆盖,只能写新文件 只写模式
f = open('a.txt','w',encoding='utf-8')
# f.write(a)
# f.close()
f = open('a.txt','w',encoding='utf-8')
a=['1 ','2','3']
f.writelines(a)
f.close() writelines可以写数组 ,类型必须是字符串
想要换行就加 第一种
第二种
newA=''

f = open('a.txt','w',encoding='utf-8')
a=['1','2','3']
nea=' '.join(a) 第二种换行的方法
f.writelines(nea)
f.close()
# numbers = [1,2,3,4,56]
# for index in range(len(numbers)):
# numbers[index] = str(numbers[index])
# print(numbers)
把int数组转换成字符串方法
f = open('a.txt','w',encoding='utf-8')
numbers = [1,2,3,4,56] #把List,int类型转成字符串
for index in range(len(numbers)):
numbers[index] = str(numbers[index])
print(numbers)
nes=','.join(numbers)
f.writelines(nes)
f.close()
第三种a+模式
#文件存在     读不出来需要加f.seek(0)
#文件不存在 会创建一个文件
#能不能读,能不能写 能读,能写 写时候会在末尾写

总结
r、r+打开不存在的文件都会报错
读写一次文件指针会在末尾所以读不出来需要f.seek(0) 就可以读出来了


文件修改
第一种
f = open('asss.txt','a+',encoding='utf-8')
f.seek(0)
ces=f.read()
new_Ces='dong'+ces
#清空两种方式 这种文件修改最好 w方式会自动清空
f2=open('asss.txt','w',encoding='utf-8')
f2.write(new_Ces)
f2.close()
第二种  
f = open('asss.txt','a+',encoding='utf-8')
f.seek(0)
ces=f.read()
new_Ces=ces.upper()#变成大写
f.seek(0)
f.truncate()#清空文件内容
f.write(new_Ces)
f.close()

修改文件的标准写法
# f = open('user.txt')
# f.close()
 
# with open('user.txt',encoding='utf-8') as f: #文件对象,文件句柄
# for line in f:
# line = line.strip()
# if line:
# print(line)
 
#1、读取到文件所有内容
#2、替换 new_str
#3、清空原来的文件
#4、写进去新的
 
 
#新的
import os
 
with open('words.txt') as fr,open('words_new.txt','w') as fw:
for line in fr:
line = line.strip()
if line:
line = line.upper()
fw.write(line+' ')
os.remove('words.txt')
os.rename('words_new.txt','words.txt')


原文地址:https://www.cnblogs.com/weilemeizi/p/14502725.html