跟着我学Python基础篇:07.文本
往期文章
跟着我学Python基础篇:01.初露端倪
跟着我学Python基础篇:02.数字与字符串编程
跟着我学Python基础篇:03.选择结构
跟着我学Python基础篇:04.循环
跟着我学Python基础篇:05.函数
跟着我学Python基础篇:06.列表
1. 读取和写入文本文件
1.1 打开文件
为了访问文件,我们必须先打开它,打开文件时,要指定文件的名字,如果文件存储在其他文件夹时,要在文件名前加上文件夹路径。假设你想读取与程序在相同文件夹中名为input.txt的文件中的数据,那么你就可以调用下面的函数来打开这个文件:
infile=open("input.txt","r")
这个语句以读模式打开文件(通过字符串参数“r”来表示)并且返回一个与input.txt文件关联的文件对象。以读模式打开是,文件必须存在,否则会引发异常。
调用open函数返回的对象必须保存在一个变量中,所以处理文件的操作都有通过这个对象来完成。
为了以写模式打开一个文件,以“w”作为第二个参数:
outfile=open("input.txt","w")
如果输出文件已经存在,那么它在写入数据之前会被清空,如果文件不存在,它会创建一个空文件,处理完文件之后,使用close方法来关闭文件。
infile=open("input.txt","r")
outfile=open("input.txt","w")
infile.close()
outfile.close()
1.2 读取文件
为了从文件中读取一行文本,调用打开文件时返回文件对象的readline方法。
line=infile.readline()
打开文件时,输入标记被定位在文件开始处,readline方法从当前位置开始读取文本,直到遇到行尾。然后输入标记移动到下一行。readline方法返回读取到的文本,包括表示行尾的换行符。
1.3 写入文件
如果你想要写入文件的内容是单个字符串,可以使用write()
方法。如果你想要写入多行内容,可以使用writelines()
方法。
下面是一个示例代码,演示了如何使用这两个方法写入文件:
# 打开文件
file = open('filename.txt', 'w')
# 写入单个字符串
file.write('Hello, World!\n')
# 写入多行内容
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
file.writelines(lines)
# 关闭文件
file.close()
在上面的示例中,我们使用open()函数打开一个名为filename.txt的文件,并指定打开模式为`w’,表示以写入方式打开文件。
然后使用write方法将字符串’Hello, World!\n`写入文件中,\n表示换行。
接下来,使用writelines()方法将列表中的每个字符串逐行写入文件中。需要注意的是,writelines()方法不会自动添加换行符,因此需要手动添加。
最后,使用close()方法关闭文件,释放系统资源。
如果需要指定文件编码方式,可以在打开文件时指定encoding参数,例如open(‘filename.txt’, ‘w’, encoding=‘utf-8’)。
1.4 一个应用
inputFileName=input("Input your filename:")
outFileName=input("Input your outfilename:")
infile=open(inputFileName,"r")
outfile=open(outFileName,"w")
total=0.0
count=0
line=infile.readline()
while line!="":
value=float(line)
outfile.write("%15.2f\n"%value)
total+=value
count+=1
line=infile.readline()
outfile.write("%15s\n"%"--------")
outfile.write("Total:%8.2f\n"%total)
avg=total/count
outfile.write("Average:%6.2f\n"%avg)
infile.close()
outfile.close()
2. 文本的输入与输出
2.1 迭代文件中的行
我们可以用循环读出文件中的所有行并且输出:
for line in infile:
print(line)
我们读取到的文件中,有些空行或者空格可能并不是我们需要的,python中提供了一些字符删除方法:
2.2 读取单词
在Python中,字符串对象具有名为split()的内置方法,用于将字符串分割成子字符串,并返回一个包含分割后子字符串的列表。split()方法基于指定的分隔符将字符串拆分成多个部分。
基本语法:
string.split(separator, maxsplit)
参数说明:
- separator(可选):指定用于分割字符串的分隔符,默认为所有的空白字符(空格、制表符、换行符等)。
- maxsplit (可选):指定最大拆分次数。如果指定了该参数,则最多只拆分出maxsplit+1个子字符串。
下面是一些示例来演示使用:
# 使用默认的空白字符分割字符串
text = "Hello World"
result = text.split()
print(result) # 输出 ['Hello', 'World']
# 使用逗号作为分隔符
text = "apple,banana,orange"
result = text.split(",")
print(result) # 输出 ['apple', 'banana', 'orange']
# 拆分出最多两个子字符串
text = "one two three four five"
result = text.split(" ", 2)
print(result) # 输出 ['one', 'two', 'three four five']
# 拆分空字符串
text = "Python"
result = text.split("")
print(result) # 输出 ['', 'P', 'y', 't', 'h', 'o', 'n', '']
需要注意的是,方法返回一个列表,其中包含拆分后的子字符串。如果没有匹配到任何分隔符,方法将返回原始字符串的单个元素列表。
此外,还有一个名为rsplit()的方法,它与split()方法类似,但是从字符串的尾部开始进行拆分。使用rsplit()方法可以指定拆分的最大次数和从右侧开始的拆分位置。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!