跟着我学Python基础篇:07.文本

往期文章

跟着我学Python基础篇:01.初露端倪
跟着我学Python基础篇:02.数字与字符串编程
跟着我学Python基础篇:03.选择结构
跟着我学Python基础篇:04.循环
跟着我学Python基础篇:05.函数
跟着我学Python基础篇:06.列表


文章目录

  • 往期文章
  • 1. 读取和写入文本文件
    • 1.1 打开文件
    • 1.2 读取文件
    • 1.3 写入文件
    • 1.4 一个应用
  • 2. 文本的输入与输出
    • 2.1 迭代文件中的行
    • 2.2 读取单词

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()

跟着我学Python基础篇:07.文本_第1张图片

2. 文本的输入与输出

2.1 迭代文件中的行

我们可以用循环读出文件中的所有行并且输出:

for line in infile:
    print(line)

我们读取到的文件中,有些空行或者空格可能并不是我们需要的,python中提供了一些字符删除方法:
跟着我学Python基础篇:07.文本_第2张图片
跟着我学Python基础篇:07.文本_第3张图片

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()方法可以指定拆分的最大次数和从右侧开始的拆分位置。

你可能感兴趣的:(Python,python)