1、读取文件并将文件存在字典中
# 文件读取方式操作 accounts_file = 'F:\Myself\xxx\xxx\xxx\user.txt' #文件路径 account_list = open(accounts_file) #打开文件 user_list={}#创建一个空字典 #将文件一行行读取,并保存到字典中 for user in account_list.readlines(): user =user.strip() if len(user)==0: continue else: user_list[user.split(',')[0]] = user.split(',')[1] #为字典的key赋值value account_list.close()
在读取路径时,比如c:\niu\desktop 这种,open在打开文件时会把c:\niu 认为里面有一个 ,所以我们可以在文件路径前加一个r,比如f=open(r'c:\niu\desktophaha') 表示原字符,不需要转义。
print(f.readline()) #读取一行数据
print(f.readlines())#获取文件里面所有的数据,每一行数据放到一个list里面
print(f.read()) #获取全部文件内容
依次执行上面三种函数,读取时,readline读取第一行,readlines 读取剩余内容,read读取不到内容,产生这种原因,是因为文件指针的原因。
文件指针:打开文件,默认指针在前,readline 读取第一行,读取完后,指针读取到第二行,readlines表示读取全部,所以将文件所有内容都读取完,指针读取到最后,再使用read读取的时候,就读取不到任何东西了。
2、写入文件
fw = open('F:\Myself\xxx\xxx\xxx\user.txt', mode='a', encoding='UTF-8') #字符编码格式 fw.writelines('%s,%s '%(loginName.lower(),passwd)) fw.close()
3、关于open()的mode参数:
'r':读
'w':写,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
'a':追加,如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
'x':写模式,新建一个文件,如果该文件已存在则会报错。
'r+' == r+w(可读可写,文件若不存在就报错(IOError))
'w+' == w+r(可读可写,文件若不存在就创建)
'a+' ==a+r(可追加可写,文件若不存在就创建)
对应的,如果是二进制文件,就都加一个b就好啦:
'rb' 'wb' 'ab' 'rb+' 'wb+' 'ab+'