day8:文件操作

 import sys, time
 for i in range(30):
     sys.stdout.write('*')
     sys.stdout.flush()
     time.sleep(0.2)

# 能调用方法的一定是对象li = [1, 2, 3]li.append(2)print(li)'asc'.capitalize()

一、文件操作流程

1.文件  读

# 建立文件对象
# data = open('jingyesi', 'r', encoding='utf-8').read()
# print(data)
f = open('jingyesi', 'r', encoding='utf-8')
data = f.read()
print(data)
f.close()  # 关闭
f = open('jingyesi', 'r', encoding='utf-8')
data = f.read(5) #  中文  一个汉字 一个字符  英文一个字母是一个字符
print(data)
f.close()  # 关闭

读模式只能读,写模式只能写,不可交互

2.文件 写

f = open('jingyesi', 'w', encoding='utf-8')
f.write('hello world')

且清空动作,在写模式已经执行。如果没有文件,会自动创建文件,然后再写内容

f = open('jingyesi', 'w', encoding='utf-8')
f.write('hello world')
f.write('alex')
输出为:
hello worldalex

打开文件,就要关闭一个文件

3.文件 append

f = open('jingyesi', 'a', encoding='utf-8')
f.write('hello world')
f.write('alex')
# print(data)
f.close()  # 关闭
输出:
静夜思
作者:李白
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。hello worldalex

4.文件其他操作

f = open('jingyesi', 'r', encoding='utf-8')

print(f.read(5))
print(f.read(5))
输出:静夜思

者:李白

f = open('jingyesi', 'r', encoding='utf-8')

 print(f.readline())
 print(f.readline())
f = open('jingyesi', 'r', encoding='utf-8')
print(f.readlines())

输出结果:['静夜思\n', '作者:李白\n', '床前明月光,\n', '疑是地上霜。\n', '举头望明月,\n', '低头思故乡。hello worldalex']

f = open('jingyesi', 'r', encoding='utf-8')
# a = f.readlines()

# print(f.readlines())
for i in f.readlines():
    print(i)
输出:静夜思


作者:李白


床前明月光,


疑是地上霜。


举头望明月,


低头思故乡。hello worldalex    解释:print有自动换行功能

f = open('jingyesi', 'r', encoding='utf-8')
# a = f.readlines()

# print(f.readlines())
for i in f.readlines():
    print(i.strip())
输出:静夜思
作者:李白
床前明月光,
疑是地上霜。
举头望明月,

低头思故乡。hello worldalex


f = open('jingyesi', 'r', encoding='utf-8')
# a = f.readlines()
# print(f.read())
# print(f.readlines())
number = 0
for i in f.readlines():
    number += 1
    if number == 6:
        print(i.strip(),'ilikeit')
    else:
        print(i.strip())
输出:静夜思
作者:李白
床前明月光,
疑是地上霜。
举头望明月,

低头思故乡。hello worldalex ilikeit

程序简化:

f = open('jingyesi', 'r', encoding='utf-8')
# a = f.readlines()
# print(f.read())
# print(f.readlines())
number = 0
for i in f.readlines():
    number += 1
    if number == 6:
        i = i.strip()+'ilikeit'   #i=''.join([i.strip(),'ilikeit'])  i=''.join((i.strip(),'ilikeit'))

        # print(i.strip(),'ilikeit')
    print(i.strip())
f = open('jingyesi', 'r', encoding='utf-8')
for i in f:
    print(i.strip())
输出:静夜思
作者:李白
床前明月光,
疑是地上霜。
举头望明月,

低头思故乡。hello worldalex

扫描二维码关注公众号,回复: 2652944 查看本文章

readlines 不好,最好用下面这种

f = open('jingyesi', 'r', encoding='utf-8')
for i in f: #这是for内部将f对象做成一个迭代器,用一行取一行
    print(i.strip())
f = open('jingyesi', 'r', encoding='utf-8')
number = 0
for i in f: #这是for内部将f对象做成一个迭代器,用一行取一行
    number += 1
    if number == 6:
        i = i.strip() + 'ilikeit'

    print(i.strip())

输出:

静夜思
作者:李白
床前明月光,
疑是地上霜。
举头望明月,

低头思故乡。hello worldalexilikeit

f = open('jingyesi', 'r', encoding='utf-8')
print(f.tell())
print(f.read(10))
print(f.tell())
输出:0
静夜思

作者:李白


28
f = open('jingyesi', 'r', encoding='utf-8')
print(f.tell())
print(f.read(10))
print(f.tell())

f.seek(0)
print(f.read(3))
输出:0
静夜思
作者:李白


28

静夜思

文件遍历

 import sys, time
 for i in range(30):
     sys.stdout.write('*')
     sys.stdout.flush()
     time.sleep(0.2)

 import sys,time
 for i in range(30):
     print('*', end='', flush=True)
     time.sleep(0.1)
 f.truncate()

文件操作的with方法

with open('libai', 'r', encoding='utf8') as f:
    f.readline()

print('hello')


猜你喜欢

转载自blog.csdn.net/MaHilda/article/details/80516612