python-20191221

目录

 

1.读文件三步曲

2.写文件、追加文件,与读文件类似

3.'wb'模式

4.with

5.使用一个新函数readlines(),也就是“按行读取”

6.使用split()来把字符串分开,它会按空格把字符串里面的内容分开

7.join()函数,是把字符串合并的

8.writelines()

9.排序

10.经过测试,发现'\n'的长度是1


1.读文件三步曲

第一步:打开

第二步:读

第三步:关闭

file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') 
filecontent = file1.read()            
print(filecontent)
file1.close()       

注意:

1)一定要记得关闭,不关闭会耗费资源,且关闭也可以保证修改后的文件保存

2)打开、读取、关闭的操作对象都是一样的,在读之后如果需要打印,则打印对象不同

3)txt文件和py文件都放在桌面的test文件夹里,写绝对和相对路径都是可以的,

open('/Users/Ted/Desktop/test/word/abc.txt')
open('word/abc.txt')

Windows系统里,常用\来表示绝对路径,/来表示相对路径

但是呢,别忘了\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下两种格式

open('C:\\Users\\Ted\\Desktop\\test\\abc.txt')
#将'\'替换成'\\'

open(r'C:\Users\Ted\Desktop\test\abc.txt')
#在路径前加上字母r

4)是encoding,不是encode

2.写文件、追加文件,与读文件类似

file1 = open('/Users/Ted/Desktop/test/abc.txt','a',encoding='utf-8') 
file1.write('张无忌\n')     
file1.write('宋青书\n')     
file1.close()    

注意:

1)在追加的情形下,第二个参数用'a',但是下面的具体方法还是使用write()

2)在'w''a'模式下,如果你打开的文件不存在,那么open()函数会自动帮你创建一个

3.'wb'模式

是以二进制的方式打开一个文件用于写入。因为图片和音频是以二进制的形式保存的,所以使用wb模式就好了

4.with

为了避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with

# 普通写法
file1 = open('abc.txt','a') 
file1.write('张无忌') 
file1.close()

# 使用with关键字的写法
with open('abc.txt','a') as file1:
#with open('文件地址','读写模式') as 变量名:
    #格式:冒号不能丢
    file1.write('张无忌') 
    #格式:对文件的操作要缩进
    #格式:无需用close()关闭

5.使用一个新函数readlines(),也就是“按行读取”

6.使用split()来把字符串分开,它会按空格把字符串里面的内容分开

file1 = open('/Users/Ted/Desktop/scores.txt','r',encoding='utf-8') 
file_lines = file1.readlines()
file1.close()

for i in file_lines:   #用for...in...把每一行的数据遍历  
    data =i.split()    #把字符串切分成更细的一个个的字符串
    print(data)        #打印出来看看

列表名(字符串).split(分隔符)

分隔符不写的情况下,默认是空格

7.join()函数,是把字符串合并的

用法是str.join(sequence),str代表在这些字符串之中,你要用什么字符串连接,sequence代表数据序列。

8.writelines()

winner = open('/Users/Ted/Desktop/winner.txt','w',encoding='utf-8') 
winner.writelines(final_scores)
winner.close()

writelines()的方式写进去,因为final_scores是一个列表(在全代码中可以看到),而write()的参数必须是一个字符串,writelines()可以是序列

9.排序

list_scores.reverse()  # reverse,逆行,所以这时列表降序排列,分数从高到低。

list_scores.sort()  #sort,表示顺序排列

10.经过测试,发现'\n'的长度是1

['罗恩102\n', '哈利383\n', '赫敏570\n', '马尔福275\n']

再根据“左取右不取”,可知:name-[:-4],score-[-4:-1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值