首页 > 编程知识 正文

python文件无法打开,利用python打开文件

时间:2023-05-04 19:48:54 阅读:278929 作者:3198

1.打开文件
with open(‘pi_digits.txt’) as file_object:
contents = file_object.read()
print(contents)
函数 open()接受一个参数:要打开的文件的名称。 Python 在当前执行的文件所在的目录中查找指定的文件。函数 open() 返回一个表示文件的对象。要让 Python 打开不与程序文件位于同一个目录中的文件,需要提供 文件路径 ,它让 Python 到系统的特定位置去查找。
关键字 with 在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用了 open() ,但没有调用 close() ;你也可以调用 open() 和 close() 来打开和关闭文件,但这样做时,如果程序存在 bug ,导致 close() 语句未执行,文件将不会关闭。
有了表示 pi_digits.txt 的文件对象后,我们使用方法 read() (前述程序的第 2 行)读取这个文件的全部内容,并将其作为 一个长长的字符串存储在变量 contents 中。这样,通过打印 contents 的值,就可将这个文本文件的全部内容显示出来:
相比于原始文件,该输出唯一不同的地方是末尾多了一个空行。为何会多出这个空行呢?因为 read() 到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行。要删除多出来的空行,可在 print 语句中使用 rstrip() :
with open(‘pi_digits.txt’) as file_object:
contents = file_object.read()
print(contents.rstrip()
2.逐行读取
filename = ‘pi_digits.txt’
with open(filename) as file_object:
for line in file_object:
print(line)
输出每一行中间会空一行,因为在这个文件中,每行的末尾都有一个看不见的换行符,而 print 语句也会加上一个换行符,因此每行末尾都有两个换行符:一个来自文件,另一个来自 print 语句。要消除这些多余的空白行,可在 print 语句中使用 rstrip() :
3.写入文件
filename = ‘programming.txt’
with open(filename, ‘w’) as file_object:
file_object.write(“I love programming.”)
可指定 读取模式 ( ‘r’ )、 写入模式 ( ‘w’ )、 附加模式 ( ‘a’ )或让你能够读取和写入文件的模式( ‘r+’ )。如果你省略了模式实参, Python 将以默认的只读模式打开文件。
如果你要写入的文件不存在,函数 open() 将自动创建它。然而,以写入( ‘w’ )模式打开文件时千万要小心,因为如果指定的文件已经存在, Python 将在返回文件对象前清空该文件。Python 只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数 str() 将其转换为字符串格式
如果你要给文件添加内容,而不是覆盖原有的内容,可以 附加模式 打开文件。你以附加模式打开文件时, Python 不会在返回文件对象前清空文件,而你写入到文件的行都将添加
到文件末尾。如果指定的文件不存在, Python 将为你创建一个空文件。
filename = ‘programming.txt’
with open(filename, ‘a’) as file_object:
file_object.write(“I also love finding meaning in large datasets.n”)
file_object.write(“I love creating apps that can run in a browser.n”)
存储数据
模块 json 让你能够将简单的 Python 数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。你还可以使用 json 在 Python 程序之间分享数据。更重要的是, JSON 数据格式并非 Python 专用的,这让你能够将以 JSON 格式存储的数据与使用其他编程语言的人分享。
函数 json.dump() 接受两个实参:要存储的数据以及可用于存储数据的文件对象。下面演示了如何使用 json.dump() 来存储数字列表
import json
numbers = [2, 3, 5, 7, 11, 13]
❶ filename = ‘numbers.json’
❷ with open(filename, ‘w’) as f_obj:
❸ json.dump(numbers, f_obj)
我们先导入模块 json ,
再创建一个数字列表。
在❶处,我们指定了要将该数字列表存储到其中的文件的名称。通常使用文件扩展名 .json 来指出文件存储的数据为 JSON 格式。
接下来,我们以写入模式打开这个文件,让 json 能够将数据写入其中(见❷)。在❸处,我们使用函数 json.dump() 将数字列表存储到文件 numbers.json 中。
这个程序没有输出,但我们可以打开文件 numbers.json ,看看其内容。数据的存储格式与 Python 中一样:
[2, 3, 5, 7, 11, 13]

下面再编写一个程序,使用 json.load() 将这个列表读取到内存中:
import json
❶ filename = ‘numbers.json’
❷ with open(filename) as f_obj:
❸ numbers = json.load(f_obj)
print(numbers)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。