Ⅰ python3 文件读写 注意什么
open()函数返回一个File对象,并且最常用的用法是使用两个参数,open(filename,mode)
第一个参数是文件名,第二个参数表示文件的打开方式。只读方式打开可以使用'r',写文件可以使用'w'(这个选项会把当前文件夹中存在同名文件时将该文件擦除),'a'可以用来追加内容,任何内容都会被写入文件的末尾。'r+'会同时读写。mode参数是可选参数,如果没有的话,默认是'r'。
一般情况下,文件都是用文本模式打开的,也就意味着,文件读写都是使用某种编码的,末日呢情况下都是用utf-8编码。'b'会用二进制形式打开文件。这个时候,文件读写都是以字节的形式。
在文本模式下,默认会把平台相关的换行符(windows平台是\r\n,Linux平台是\n)转换成\n,在写文件时,会把\n转换成平台相关的字符写入。这种后台的操作对于文本会非常有用,但是对于二进制文件如jpeg或exe文件,则会破坏文件,因此在打开这类文件时千万要使用二进制模式打开。
Ⅱ python读写有中文的文件时,是否需要设置编码格式
需要:
with open("路径","模式",encoding="utf8") as f:
如果不确定编码格式,后面读取可能会出问题
Ⅲ python的编写格式
读取键盘输入【raw_input( )或者input( )】
>>> demo = raw_input('INPUT:'); \ # \是在CMD中的换行符
... print "content is" , demo
INPUT:HELL0 MOMO
content is HELL0 MOMO
打开或关闭文件,这里要用Python的内置函数open( ),然后创建一个file对象。
Python打开文件的模式:
r 以只读模式打开文件。
w 以只写模式打开文件,且先把文件内容清空(truncate the file first)wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 以添加模式打开文件,写文件的时候总是写到文件末尾,用seek也无用。打开的文件也是不能读的。
r+ 以读写方式打开文件,文件可读可写,可写到文件的任何位置。
w+ 和r+不同的是,它会truncate the file first。
a+ 和r+不同的是,它只能写到文件末尾。
一个文件被打开后,有一个file对象,可以得到有关该文件的各种信息,以下是一些使用方法:
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
举个例子
>>> demo = open("MOMO.txt","wb")
>>> print u'是否关闭:', demo.closed
是否关闭:False
>>> print u'访问模式:',demo.mode
访问模式: wb
>>> print u'文件名称:',demo.name
文件名称:MOMO.txt
>>> print u'末尾是否加空格:',demo.softspace
末尾是否加空格:0
Ⅳ python对文件的独操作有哪几种请详细说明每种方法
1.打开文件:
f=open(r'E:\PythonProjects\test7\a.txt',mode='rt',encoding='utf-8')
以上三个单引号内分别表示:要打开的文件的路径,mode为文件打开方式具体介绍在下文,encoding为文件的字符编码,一般默认为utf-8
2.读写文件:
data=f.read() # 读文件
f.write() # 写文件
3.关闭文件:
f.close()
4.为了简便,一般采用上下文的方法进行文件操作,可不用关闭文件
with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read()
print(data)
with open('a.txt',mode='wt',encoding='utf-8') as f:
f.write('hello world')
5.控制文件读写的操作:
r:(默认模式):只读:以该模式打开文件时,若文件不存在则报错,若文件存在,则文件指针在文件开头,即从文件开头开始读文件
w:只写:以该模式打开文件时,若文件不存在则创建一个文件,如文件存在,则清空文件内容,文件指针移到开头
a:追加写:以该模式打开文件时,若文件不存在则创建一个文件,如文件存在,则将文件指针移到文件末尾,在文件末尾写入新的内容
6.控制文件读写内容的模式:(t 和 b都不能单独使用,必须与r,w,a结合使用)
t:(默认):无论读写都是以字符为单位,只能识别文本文件,必须要制定encoding
b:无论读写都是以字节为单位,可以识别所有文件,一定不能指定encoding
7.文件的拷贝
with open ('a.txt',mode='rb') as af,\
open('b.txt',mode='wb') as bf:
data=af.read
f.write(data)
执行程序后,打开文件,即可发现文件已成功拷贝,这里使用 b 而不是用 t 模式,是因为文件有多种格式
8.文件的修改:
文件的修改是在硬盘上实现文件的覆盖,相当于一个新的文件以旧的文件名来命名的; 文件的修改有俩种方式,分别适用于不同的情景
方式一(适用于容量小的文件):这种方式的原理是:创建一个新的文件,将旧文件的内容拷贝到新的文件中;这样内存里就存在俩个文件,故不适用于容量大的文件,具体代码见下方 View
with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read()
data_new=data.replace('yang', 'yv')
with open('b.txt',mode='wt',encoding='utf-8')as p:
p.write(data_new)
方式二(适用于容量大的文件):此方式的原理为:读取旧文件的一行内容,修改后写到临时文件中,循环往复直到写完,然后将源文件删除,将临时文件命名为源文件名.这种方式在内存中只存在2行文件,节省内存,可用于大文件
import os
with open('b.txt',mode='rt',encoding='utf-8') as f,\
open('.b.txt.swap',mode='wt',encoding='utf-8') as p:
for line in f:
p.write(line.replace('yv','yang'))
# 调用replace方法,将源文件中的'yv',换成'yang'
os.remove('b.txt')
os.rename('.b.txt.swap','b.txt')
9. 文件的阶段:truncate(n)
将文件中n个字节后内容全删了,当 n 不存在时,即删除文件全部内容
10.文件内指针的移动
f.seek(): 指针的移动是以字节为单位的
seek 有三种模式:
0:(默认模式) 指针在文件开头,只有在 0 模式可以在 t 模式下用,也可以在 b 模式下用,而 1 ,2 模式只能在 b 模式下使用
1:指针在当前位置
2:指针在文件末尾
以下为具体事例:
# 0
with open('a.txt',mode='rt',encoding='utf-8')as f:
f.seek(3,0)
print(f.tell()) # 指针当前位置
print(f.read()) # 从指针后读出所有内容
# 1 参照指针当前位置
with open('a.txt',mode='rb')as f:
f.read(2)
f.seek(4,1)
print(f.tell())
print(f.read().decode('utf-8'))
# 2 参照文件末尾
with open('a.txt',mode='rb')as f:
f.seek(-5,2)
print(f.tell())
print(f.read().decode('utf-8'))
当 seek处于 2 模式时,可以将文件中新加入的内容打印出来,具体代码如下:
# 另一个文件进行写操作,写的代码如下:
with open('a.txt',mode='at',encoding='utf-8')as f:
f.write('hello world\n')
# 每在文件中写入新的内容,都打印出来,以下代码执行打印操作:
import time
with open('a.txt',mode='rb')as f:
f.seek(0,2)
while True:
line=f.readline() # readline 可以读取没有内容的部分
# print(line.decode('utf-8'))
if len(line)==0:
time.sleep(0.1)
else:
print(line.decode('utf-8'))
Ⅳ 如何正确理解Python文件读写模式字w+和r+
w+打开文件会将原文件内容删除,可以同时对文件进行读写
r+打开文件会保持原文件内容不变,同样可以同时对文件进行读写
Ⅵ python 几种读写模式的区别及几种常用的指令
f.read([size]):默认一次性读入打开的文件内容。如果有size参数,则指定每次读入字符数。注意,此处按字符来读入,一个汉字为一个字符
f.readline([size]):一次读入一行文件内容
f.readlines([size]):将文件内容全部读入,保存在一个列表中,每行为一个元素。
f.writ(str,encoding=):将str写入文件,可以指定写入的编码格式,默认为utf-8
f.writlines()
f.readable() : 判断是否可读,返回布尔值。如果是在只写模式下打开文件, 也是返回false
f.writable():判断是否可写
f.tell() : 返回当前光标位置
f.seek(offset,whence=0):将光标位置移至所需位置。offset为偏移量。whence定义开始偏移的位置。0为从文件开头偏移。1为从当前位置开始偏移。2为从文件末尾开始偏移,默认为0。注意,此处偏移量是按字节计算,也就是一个汉字最少需要两个偏移量。如果偏移量正好讲一个汉字分开,则会报错。
f.truncate(数值) 从光标位置截断/删除后面内容。
f.flush() 将内存内容立即写入硬盘
Ⅶ Python题求解!
#open(路径+文件名,读写模式)
#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式
如:'rb','wb','r+b'等等
读写模式的类型有:
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
RWA就不解释了 带加号的都是双模式 以字节流方式打开。带B的是以二进制方式打开 就是机器码 0110之类的
Ⅷ python可以同时对文件进行读写操作吗
对文件的操作,步骤为:打开一个文件-->读取/写入内容-->保存文件
文件读写的3中模式
# 1、w 写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写
# w+ 是读写内容,只要沾上w,肯定会清空原来的文件
# 2、r 读模式,只能读,不能写,而且文件必须存在
# r+ 是读写模式,只要沾上r,文件必须存在
# 3、a 追加模式,也能写,在文件的末尾添加内容
# 4、rb+、wb+、ab+,这种是二进制模式打开或者读取,一些音乐文件
test1.txt
1 如果无情的风摘走了那片树叶
2 如同摘走了我的心
3 在每一个想你的夜晚
4 请允许我将你抱紧
5 我不像一只大雁可以秋去春来
6 衔回丢失的缘分
7 所以从来不敢回忆离别
8 越是清晰 越是伤心
9 你说所有的城市没有不同
10 我宁愿相信你心中有片草原
1、循环读取文件中的每一行内容:
demo1.py1 file = open('test1.txt','r+')# 打开test1.txt 文件
2 for line in file: # 遍历file文件
3 print('line里面存放的是:',line) # 循环打印文件中每一行内容
4 print(type(line)) # <class 'str'> 类型是字符串
5 file.close()# 关闭文件
用with的方式打开文件,不用担心使用完文件后忘记关闭,它会自动将文件关闭1 with open('test1.txt','r+') as file:
2 for line in file:
3 print('line里面存放的是:',line) # 循环打印文件中每一行内容
4 print(type(line)) # <class 'str'> 类型是字符串
3、向文件中写入内容
1 with open('users','a+') as fw: # 打开文件
2 fw.write('写入文件内容')
4、用函数的方式读取文件
1 def read_file(filename):
2 '''
3 用来读取文件内容
4 :param filename: 文件名
5 '''
6 with open(filename,'a+') as fr:
7 fr.seek(0) # 移动文件指针
8 content = fr.read() # content 类型是字符串
9 print('content:',content)
10 read_file('users') # 调用函数
5、用函数的方式写文件
1 def write_file(filename,content):
2 '''
3 用来读取文件内容的
4 :param filename: 文件名
5 '''
6 with open(filename,'a+') as fw:
7 fw.seek(0) # 移动文件指针
8 fw.truncate() # 清空文件内容
9 fw.write(str(content))
10 write_file('a','hello world') # 调用函数
Ⅸ 关于Python文件中的w➕打开模式属于什么模式
w+是是以读写模式打开文件