当前位置:首页 » 编程语言 » python文件读写with

python文件读写with

发布时间: 2022-07-17 02:51:27

1. python文件读写问题

#!/usr/bin/envpython2.7
fname='all.txt'
withopen(fname)asf:
s=f.readlines()
#prints
foriinrange(3):
si=[s[j]forjinrange(len(s))ifj%3==i]
#printsi
withopen('part{}.txt'.format(i+1),'w')aswf:
wf.writelines(si)

2. Python编写一个文件读写程序(命令行程序)

defreadfromfile(filename):
withopen(filename,'rt')ashandle:
returnhandle.read()

defappendtofile(filename,lines):
withopen(filename,'at')ashandle:
handle.writelines(lines)

defitercui():
while1:
content=raw_input()
ifcontentin('exit','quit'):
break
yieldcontent

if__name__=="__main__":
filename="record.log"
printreadfromfile(filename)
appendtofile(
filename,
[ln+' 'forlninitercui()]
)

3. 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'))

4. 软件测试中,python 中 open与with open 的区别

open函数

1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件本身,所以使用的方法都是流对象的方法)。使用这个函数时可以指定encoding参数(Python2.7中不支持),因为Python代码在不同的平台环境中使用的默认编码方式不同,有可能会发生编译出错的问题。

2. filename参数:在open中的文件名参数filename中,包含的路径表示虽然可以根据不同的环境使用斜杠和反斜杠,但在Python中表路径时,斜杠都是正确的。

3. 文件操作对象file:流对象file,即open的默认模式下的返回值。使用for循环对对象file进行迭代时,每次迭代都会自动分离出一行(效果相当于对readlines结果的for循环遍历):
with创建临时运行环境

作用:with用于创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。

文件操作:使用open进行文件操作使建议使用with创建运行环境,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。

with open(’/path/to/file’, ‘r’) as f:

print(f.read())
这和前面的try … finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。
如果想了解跟多相关的执行可以来传智播客软件测试学习

5. 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') # 调用函数

6. Python中的文件读写-理论知识

Python处理两种不同类型的文件:二进制文件和文本文件。了解两者之间的差异很重要,因为它们的处理方式不同。

二进制文件

在正常计算机使用期间使用的大多数文件实际上是二进制文件,而不是文本。比如:Microsoft Word .doc文件实际上是一个二进制文件,即使它只有文本。

二进制文件的其他示例包括:

图像文件,包括.jpg,.png,.bmp,.gif,等。

数据库文件包括.mdb,.frm和.sqlite

文件,包括.doc,.xls,.pdf或者其他文件。

那是因为这些文件都有特殊处理的要求,需要特定类型的软件来打开它。例如,您需要Excel来打开.xls文件,并使用数据库程序来打开.sqlite文件。

文本文件

一方面,没有特定的编码,可以通过没有任何特殊处理的标准文本编辑器打开。但是,每个文本文件都必须遵守一组规则:

文本文件必须是可读的。他们可以(并且经常会)包含许多特殊编码,尤其是在HTML或其他标记语言中,但您仍然可以说出它的含义

文本文件中的数据按行组织。在大多数情况下,每一行都是一个独特的元素,无论是指令行还是命令。

此外,文本文件在每行的末尾都有一个看不见的字符,这使文本编辑器知道应该有一个新行。通过编程与这些文件交互时,您可以利用该字符。在Python中,它用“ n” 表示。

在哪里可以找到Python的文件I / O工具

在Python中工作时,您不必担心导入任何特定的外部库来处理文件。Python附带有“文件库”,文件I / O工具和实用程序是核心语言的内置部分。

但是在其他语言(如C ++)中,要处理文件,您必须通过包含正确的头文件来启用文件I / O工具#include <fstream>。如果您使用java编写代码,则需要使用该import java.io.*语句。

使用Python,就没有必要这样做,这是因为Python有一组内置函数,可以处理读取和写入文件所需的所有内容。

7. 用python语言进行文件读写,如何跳过某文件的第一行并且统计剩下部分的某指定字符串的个数

#以下为python3语法
#python的字符串本身是有一个count函数,用来统计字符串的个数

#所以先来把文件内容读成字符串,然后自动统计
with open(filename,'rt',encoding='utf8') as f:#filename就是要读的文件名,
#encoding后面是文件编码方式
alllines=f.readlines()

lines=alllines[1:]#只要所有行里面除了第一行的剩下的行

bigstring=''.join(lines)#把所有行合并成一个字符串

num=bigstring.count(substr)#substr就是你要寻找的字符串

print(num)

8. 怎么读取整个文件 python

Python 读写文本文件

首先需要注意的是,txt文件是具有字符编码的,不同的txt字符编码可能不同。具体是什么编码,可以用 notepad++ 等文本编辑器查看。
读取文件建议使用 with...as... 结构,可以自动关闭文件。

with open("text.txt", "r") as f:
text = f.read()
print(text)

如果不用 with...as... 则必须手动关闭文件:

f = open("text.txt", "r")
text = f.read()
f.close()
print(text)

如果读取的文件含有中文,使用内置的open可能会报错,这个时候要用到codecs模块:

import codecs
with codecs.open("text.txt", "r", encoding="utf-8") as f:
text = f.read()
print(text)

(假设 text.txt 是 utf-8 编码)

9. Python如何读写文本文件

1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。
2.读文件读文本文件input = open('data', 'r')
#第二个参数默认为r
input = open('data')

读二进制文件input = open('data', 'rb')
读取所有内容file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
读固定字节file_object = open('abinfile', 'rb')
try:
while True:
chunk = file_object.read(100)
if not chunk:
break
do_something_with(chunk)
finally:
file_object.close( )
读每行list_of_all_the_lines = file_object.readlines( )
如果文件是文本文件,还可以直接遍历文件对象获取每行:
for line in file_object:
process line
3.写文件写文本文件output = open('data.txt', 'w')
写二进制文件output = open('data.txt', 'wb')
追加写文件output = open('data.txt', 'a')

output .write("\n都有是好人")

output .close( )

写数据file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

10. python中怎么读取文件内容

用open命令打开你要读取的文件,返回一个文件对象
然后在这个对象上执行read,readlines,readline等命令读取文件
或使用for循环自动按行读取文件

热点内容
家用电脑改成服务器并让外网访问 发布:2025-02-01 15:30:23 浏览:354
javac工资 发布:2025-02-01 15:24:28 浏览:22
如何删除服务器登录账号 发布:2025-02-01 15:21:05 浏览:498
瑞萨编程器 发布:2025-02-01 15:19:18 浏览:85
上海ntp服务器搭建 发布:2025-02-01 15:03:38 浏览:991
c游戏编程基础 发布:2025-02-01 15:00:17 浏览:993
routejs怎么动态配置 发布:2025-02-01 14:59:07 浏览:502
家用电脑安装服务器内存 发布:2025-02-01 14:38:50 浏览:257
增量调制编译码实验报告 发布:2025-02-01 14:30:30 浏览:787
不良人2无敌伤害脚本 发布:2025-02-01 14:23:04 浏览:398