18_Python之文件读取

…衆ロ難τιáo~ 提交于 2020-02-02 00:38:12

文件读取(Python语言实现)

1. 读取整个文件 read()

fn = 'test.txt'
file_obj = open(fn, encoding='UTF-8')
data = file_obj.read()
file_obj.close()  # 不关闭会对文件造成不必要的损害
print(data)

2. with 关键词

fn = 'test.txt'
with open(fn, encoding='utf-8') as file_obj:
    data = file_obj.read()
    print(data.rstrip())  # 输出时删除末端字符

3. 逐行读取文件

# 逐行读取文件内容
fn = 'test.txt'
with open(fn, encoding='utf-8') as file_obj:
    for line in file_obj:  # 逐行读取文件到变量line
        print(line)  # 有空行

image.png

# 逐行读取文件内容
fn = 'test.txt'
with open(fn, encoding='utf-8') as file_obj:
    for line in file_obj:  # 逐行读取文件到变量line
        print(line.rstrip())  # 没有空行

image.png


4. 逐行读取使用 readlines()

使用with关键词配合open时,所打开的文件对象当前只在with区块内使用,使用readlines() 进行逐行读取,同时以列表的形式存储,换行字符也会被存储进去。

fn = 'test.txt'
with open(fn, encoding='utf-8') as file_obj:
    obj_list = file_obj.readlines()  # 每次读一行
print(obj_list)

image.png

逐行输出列表内容:

fn = 'test.txt'
with open(fn,encoding='utf-8') as file_obj:
    obj_list = file_obj.readlines()  # 每次读取一行
for line in obj_list:
    print(line.rstrip())  # 打印列表

image.png


5. 数据组合

# 文档在一行显示
fn = 'test.txt'
with open(fn, encoding='utf-8') as file_obj:
    obj_list = file_obj.readlines()
str_obj = ''  # 先设为空字符
for line in obj_list:
    str_obj += line.rstrip()
print(str_obj)

image.png


6. 字符串的替换

使用Word时有查找和替换功能,Python也有这个方法使新的字符串取代旧字符串。

fn = 'test.txt'
with open(fn, encoding='utf-8') as file_obj:
    data = file_obj.read()
    new_data = data.replace('的', 'blueheart')
    print(new_data.rstrip())

image.png


7. 数据的搜索

Word有搜索和功能,使用Python使这类工作变得简单。

# 数据的搜索
fn = 'test.txt'
with open(fn,encoding='utf-8') as file_obj:
    obj_list = file_obj.readlines()

str_obj = ''  # 先设为空字符
for line in obj_list:
    str_obj += line.rstrip()

findstr = input("请输入要搜索的字符串:")
if findstr in str_obj:
    print("搜索 %s 字符串在 %s 文件中" % (findstr, fn))
else:
    print("搜索 %s 字符串不在 %s 文件中" % (findstr, fn))

image.pngimage.png


8. 使用 find() 进行数据搜索

就多了一句话:index = str_obj.find(findstr)  # 第11行

# 使用find(), 可以得到查询字符 索引位置
fn = 'test.txt'
with open(fn,encoding='utf-8') as file_obj:
    obj_list = file_obj.readlines()

str_obj = ''  # 先设为空字符
for line in obj_list:
    str_obj += line.rstrip()

findstr = input("请输入要搜索的字符串:")
index = str_obj.find(findstr)  # 就多了一个索引
if findstr in str_obj:
    print("搜索 %s 字符串在 %s 文件中" % (findstr, fn))
    print("在索引 %s 位置出现 " % index)
else:
    print("搜索 %s 字符串不在 %s 文件中" % (findstr, fn))

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!