目录
5.使用一个新函数readlines(),也就是“按行读取”
6.使用split()来把字符串分开,它会按空格把字符串里面的内容分开
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]