下面是一个Python中读取和写入文件的完整例子,包括了打开文件、读取内容、写入内容以及关闭文件的基本步骤。此外,还会展示如何使用`with`语句来自动管理资源。
### 示例:读取文件
假设我们有一个名为`sample.txt`的文本文件,其内容如下:
```
Hello,
This is a sample text file.
It contains multiple lines
and is used to demonstrate
file reading in Python.
```
现在,我们将编写一个Python脚本来读取这个文件的内容。
```python
# 定义文件名
file_name = 'sample.txt'
# 使用with语句自动管理资源,打开文件用于读取
with open(file_name, 'r') as file:
# 读取整个文件内容
content = file.read()
# 打印文件内容
print("文件内容:")
print(content)
# 按行读取文件
print("\n文件内容,按行读取:")
for line in file:
print(line.strip()) # strip()移除字符串首尾的空白字符和换行符
# 文件在with语句块结束时自动关闭,不需要显式调用file.close()
```
### 示例:写入文件
现在,我们将创建一个新的Python脚本,向一个名为`newfile.txt`的文件中写入一些文本。
```python
# 定义新文件的文件名
new_file_name = 'newfile.txt'
# 使用with语句自动管理资源,打开文件用于写入
# 'w'模式会覆盖文件内容,如果需要追加内容,应使用'a'模式
with open(new_file_name, 'w') as file:
# 写入多行文本到文件
file.write("第一行文本\n")
file.write("第二行文本\n")
file.write("第三行文本\n")
# 文件在with语句块结束时自动关闭
# 再次打开同一个文件,追加更多文本
with open(new_file_name, 'a') as file:
file.write("这是追加的第四行文本\n")
# 打印写入文件的内容以确认
with open(new_file_name, 'r') as file:
print("写入并追加后的文件内容:")
print(file.read())
```
### 错误处理
在处理文件时,可能会遇到各种错误,例如文件不存在。以下是如何使用`try`和`except`语句来处理这些错误的示例:
```python
# 尝试打开一个不存在的文件
try:
with open('non_existent_file.txt', 'r') as file:
data = file.read()
except FileNotFoundError:
print("错误:找不到文件 'non_existent_file.txt'")
# 尝试写入一个不可写文件
try:
with open('read_only_file.txt', 'w') as file: # 假设该文件为只读
file.write("尝试写入只读文件")
except IOError as e:
print(f"错误:无法写入文件,原因 - {e}")
```
### 注意事项
- 打开文件时,务必使用正确的文件路径和模式。
- 写入文件时,要注意文件的权限,确保程序有相应的写入权限。
- 使用`with`语句可以确保文件在操作完成后正确关闭,即使发生异常也是如此。
- 在进行文件操作时,始终考虑可能出现的异常,并妥善处理。