文件的操作

基本操作:

1
f = open('lyrics') #打开文件 2 first_line = f.readline()#一行一行读 3 print('---'.center(50,'-')) 4 data = f.read()# 读取剩下的所有内容,文件大时不要用 5 print(data) #打印文件 6 f.close() #关闭文件
 1 你从未离去(《熊出没之雪岭熊风》)
 2 
 3 浩瀚星空里
 4 只剩你的背影
 5 银河已凝结成冰
 6 记忆滑过泪滴
 7 想象能回到过去
 8 终会存在我心底
 9 虽然逃避
10 她消失在梦里
11 日出的幻景
12 再次感觉到你
13 风送来你的呼吸
14 月色倒映着惊喜
15 原来你从未离去
16 默默守护在这里
17 无声无息
18 如影随形
19 我不再迷茫
20 思念是唯一的行囊
21 漫天的星光
22 有一颗是你的愿望
23 前方的路不再孤单漫长
24 天空下你我不再守望
25 轻声歌唱
26 在我身旁
27 日出的幻景
28 再次感觉到你
29 风送来你的呼吸
30 月色倒映着惊喜
31 原来你从未离去
32 默默守护在这里
33 无声无息
34 如影随形
35 我不再迷茫
36 思念是唯一的行囊
37 漫天的星光
38 有一颗是你的愿望
39 前方的路不再孤单漫长
40 天空下你我不再守望
41 轻声歌唱
42 在我身旁
43 我不再迷茫
44 思念是唯一的行囊
45 漫天的星光
46 有一颗是你的愿望
47 前方的路不再孤单漫长
48 天空下你我不再守望
49 轻声歌唱
50 在我身旁  

 

打开文件有:读、写、添加。

  r,只读模式(默认)。

  w,只写模式。【不可读;不存在则创建;存在则删除内容;】

  a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

  "+" 表示可以同时读写某个文件

  r+,读写。追加

  w+,写读

  a+,同a

1 f = open('listen','r',encoding='utf-8')
2 f = open('listen','w',encoding='utf-8')
3 f = open('listen','a',encoding='utf-8')

这叫做句柄语句

若要把第九行去掉,可用下面方法:

1 for index,line in enumerate(f.readlines()) : #可以取出行号
2     if index == 9 :
3         print('abc'.center(50,"#"))
4         continue
5     print(line.strip())
View Code

用readlines()显示是一个列表

1 f = open('listen','r',encoding='utf-8')
2 
3 print(f.readlines()) #为一个列表
4 
5 ['Somehow, it seems the love I knew was always the most destructive kind\n', '不知为’]
View Code

 打印当前光标位置和移动光标

 1 f = open('listen','r',encoding='utf-8')
 2 print(f.tell())
 3 print(f.readline())
 4 print(f.tell())
 5 
 6 
 7 >>>
 8 0
 9 Somehow, it seems the love I knew was always the most destructive kind
10 72
View Code
 1 f = open('listen','r',encoding='utf-8')
 2 print(f.tell())
 3 print(f.readline())
 4 print(f.tell())
 5 f.seek(50)
 6 print(f.readline())
 7 
 8 
 9 >>>
10 0
11 Somehow, it seems the love I knew was always the most destructive kind
12 72
13 ost destructive kind
View Code

 进度条:要实时更新,用到了sys和time模块

1 import sys , time
2 for i in range(50):
3     sys.stdout.write('#')
4     sys.stdout.flush()
5     time.sleep(1)
View Code
 1 如果用print()他就换行了
 2 for i in range(3):
 3     print('#')
 4 
 5 >>>
 6 #
 7 #
 8 #
 9 
10 Process finished with exit code 0
11 
12 
13 
14 用sys模块中的标准输出
15 import sys
16 for i in range(20):
17     sys.stdout.write('#')
18 
19 >>>
20 ####################
21 
22 Process finished with exit code 0
View Code

截断程序

1 f = open('listen','a',encoding='utf-8')
2 f.truncate(20)
3 
4 >>>
5 
6 Somehow, it seems th
View Code

 文件的修改

 1 '''
 2 思路:
 3     首先一定是一句一句读出来,全读文件过大
 4     建立一个空文件
 5     如果是要改那么就改,不改的话就把当前行放入文件夹
 6     一句一句输入,用到for循环
 7 '''
 8 
 9 f = open('listen','r',encoding='utf-8')
10 f_new = open('listen_new1','w',encoding='utf-8')
11 for line in f :
12     if '肆意的快乐等我享受' in line :
13         line = line.replace('肆意的快乐等我享受','只剩我一个人')
14     f_new.write(line)
15 f.close()
16 f_new.close()

 with语句为了避免打开文件后忘记关闭,可以通过管理上下文,即:(还有换行操作 \ )

1 with open('listen','r',encoding='utf-8') as obj1 ,\
2      open('listen_1','r',encoding='utf-8') as obj2 :
3     pass
View Code

 

posted @ 2020-02-11 18:59  穆帅虎  阅读(84)  评论(0)    收藏  举报