1、打开一个文件读取数据
如有以下文件,位于与Python相同的文件夹中:
demofile.txt
# 写入示例文件 with open('example.txt', 'w') as file: file.write("这是第一行文本。\n") file.write("这是第二行文本。\n") file.write("这是第三行文本。\n") file.write("www.cjavapy.com \n") file.write("Python 文件读取示例结束。\n") print("文件 'example.txt' 已生成。")
要打开文件,请使用内置的open()
函数。
open()
函数返回一个文件对象,该对象具有用于读取文件内容的read()
方法:
例如:
# 写入示例文件 with open('example.txt', 'w') as file: file.write("这是第一行文本。\n") file.write("这是第二行文本。\n") file.write("这是第三行文本。\n") file.write("www.cjavapy.com \n") file.write("Python 文件读取示例结束。\n") print("文件 'example.txt' 已生成。") # 打开文件 with open('example.txt', 'r') as file: # 读取整个文件内容 content = file.read() # 输出文件内容 print(content)
如果文件位于其他位置,则必须指定文件路径,如下所示:
例如:
在其他位置打开文件:
f = open("D:\\myfiles\welcome.txt", "r") print(f.read())
2、read读取文件中部分数据
默认情况下,read()
方法返回整个文本,但是也可以指定要返回的字符数:
例如:
返回文件的前5个字符:
# 写入示例文件 with open('example.txt', 'w') as file: file.write("这是第一行文本。\n") file.write("这是第二行文本。\n") file.write("这是第三行文本。\n") file.write("www.cjavapy.com \n") file.write("Python 文件读取示例结束。\n") print("文件 'example.txt' 已生成。") # 打开文件 with open('example.txt', 'r') as file: # 读取整个文件内容 content = file.read(5) # 输出文件内容 print(content)
3、readline()读取一行
可以使用readline()
方法返回一行:
例如:
读取文件的一行:
# 写入示例文件 with open('example.txt', 'w') as file: file.write("这是第一行文本。\n") file.write("这是第二行文本。\n") file.write("这是第三行文本。\n") file.write("www.cjavapy.com \n") file.write("Python 文件读取示例结束。\n") print("文件 'example.txt' 已生成。") # 打开文件 with open('example.txt', 'r') as file: # 每次读取一行内容 content = file.readline() # 输出文件内容 print(content)
通过两次调用readline()
,可以阅读前两行:
例如:
读取文件中的两行:
# 写入示例文件 with open('example.txt', 'w') as file: file.write("这是第一行文本。\n") file.write("这是第二行文本。\n") file.write("这是第三行文本。\n") file.write("www.cjavapy.com \n") file.write("Python 文件读取示例结束。\n") print("文件 'example.txt' 已生成。") # 打开文件 with open('example.txt', 'r') as file: # 每次读取一行内容 content = file.readline() # 输出文件内容 print(content) content = file.readline() # 输出文件内容 print(content)
通过遍历文件的每一行,可以逐行读取整个文件:
例如:
逐行循环遍历文件:
# 写入示例文件 with open('example.txt', 'w') as file: file.write("这是第一行文本。\n") file.write("这是第二行文本。\n") file.write("这是第三行文本。\n") file.write("www.cjavapy.com \n") file.write("Python 文件读取示例结束。\n") print("文件 'example.txt' 已生成。") # 打开文件 with open('example.txt', 'r') as file: for f in file: # 输出文件内容 print(f)
4、close和with语句关闭文件
close
和with
语句都可以关闭文件,with
语句确保文件操作完成后,自动关闭文件,即使在操作过程中发生了异常。代码更加简洁,无需显式调用close()
方法。用close()
时,需要确保无论文件操作是否成功,文件都能被关闭。这通常通过try...finally
块来实现。用close()
时,需要确保无论文件操作是否成功,文件都能被关闭。这通常通过try...finally
块来实现。
例如:
1)使用with
语句打开和关闭文件
with open('example.txt', 'r') as file: content = file.read() print(content) # 在这里,文件已经自动关闭了
2)使用close()
方法手动关闭文件
file = open('example.txt', 'r') try: content = file.read() print(content) finally: file.close() # 手动关闭文件
注意:应该始终关闭文件,在某些情况下,由于缓冲的原因,只有在关闭文件后才能显示对文件所做的更改。