一、使用open()函数打开文件
Python提供了内置的open()函数,用于打开并创建文件。其语法如下:
f = open(file, mode)
其中,file是文件名(可以包含路径),mode表示打开文件的模式,包括:
'r':读模式(默认)
'w': 写模式,如果文件不存在则创建文件,如果存在则截断文件
'a': 追加模式,如果文件不存在则创建文件
'b': 二进制模式
't': 文本模式(默认)
'x': 创建并写入新文件
下面是一个例子,创建一个新文件并写入内容:
with open('myfile.txt', 'w') as f: f.write('Hello, world!')
这个例子中,我们打开一个名为myfile.txt的文件,并指定打开模式为写模式('w')。如果该文件不存在,则会创建一个新的文件,如果已经存在,则会清空文件内容并打开文件以供写入。我们使用了with语句来自动关闭文件,以便在代码块执行结束时释放资源。
二、使用write()方法写入文件
open()函数打开文件后,我们就可以使用其返回的文件对象f来写入文件。其中,write()方法用于写入数据。如果我们打开文件的模式是'w'或'x',则可以使用write()方法写入数据。例如:
with open('myfile.txt', 'w') as f: f.write('Hello, world!')
在上面的代码中,我们使用write()方法向文件中写入了Hello, world!这行字符串。当我们运行此代码后,我们可以在当前目录下找到名为myfile.txt的文件,并打开它看到里面已经写入了我们想要的内容。
三、使用writelines()方法写入多行数据
如果我们想要一次性写入多行数据,可以使用writelines()方法。这个方法接受一个列表或可迭代对象,每个元素都是一行字符串,它将它们写入文件,例如:
lines = ['Hello, world!\n', 'Python is awesome!\n', 'We love programming!\n'] with open('myfile.txt', 'w') as f: f.writelines(lines)
在上面这个例子中,我们定义了一个包含多个字符串的列表lines,然后使用writelines()方法将列表中的每个元素都写入文件。
需要注意的是,每行字符串都应该以\n结尾,表示换行。否则它们将被写成一行。
四、使用seek()方法移动文件指针
我们可以使用seek()方法在文件中移动指针。指针是一个文件内部的位置标记,它指示了下一次读或写会发生在什么位置。seek()方法接受一个整数参数,表示要移动的字节数。这个参数可以是正数、负数和零。
假设我们已经打开了一个文件,并写入了一些数据:
with open('myfile.txt', 'w') as f: f.write('Hello, world!')
现在,我们可以使用seek()方法向后移动指针:
with open('myfile.txt', 'r+') as f: f.seek(6) f.write('Python')
在这个例子中,我们打开了文件,并将打开模式设置为'read+'。这意味着我们既可以读取文件内容,也可以写入内容。
然后,我们使用seek(6)方法将指针移动到位置6(即文件中的'w'字母)。接下来,我们使用write('Python')方法覆盖了'world'中的'w'。
五、使用truncate()方法截断文件
truncate()方法可以截断文件,即删除指定位置之后的所有内容。例如,我们可以从文件的开头开始截断:
with open('myfile.txt', 'r+') as f: f.truncate(5)
在这个例子中,我们使用truncate()方法从文件的开头开始截断,并将文件的大小截断为5个字符。这意味着,'Hello'将作为文件的唯一内容。
六、关闭文件
打开文件后,Python将为其分配内存和其他资源。因此,当我们完成对文件的操作时,应该关闭文件以释放资源。
为了简化这个过程,我们可以使用Python的with语句来处理文件。在with语句的代码块中,文件将自动关闭:
with open('myfile.txt', 'w') as f: f.write('Hello, world!')
在with语句的块之外访问文件将导致操作系统资源泄漏,造成程序崩溃。