读文件
file_object = open(filename)
打开filename文件,返回该文件的对象
file_object.close()
关闭文件
with open(filename) as file_object:
with会在在不需要访问文件后将其关闭
注意with行末尾也要跟着:
file_object.read()
把文件内容读取成一串字符串
file_object.readlines()
把文件内容按行读取成列表
#文件对象使用readlines()或者read()后就不能读出文件内容了。???
float()
#将字符串转换成浮点数
int()
#将字符串转换成整数
string_name.replace('a', 'b')
将string_name中所有的a都替换成b
filename = 'admin.py'
with open(filename) as file_object:
text1 = file_object.read() #一次读取全部内容
print('text1 =')
print(text1)
with open(filename) as file_object:
print('text2 =')
for text2 in file_object: #逐行读取
print(text2.rstrip())
with open(filename) as file_object:
print('text3 =')
text3 = file_object.readlines() #将内容按行存储成列表
print(text3)
#将内容变为一行
text3_string = ''
for line in text3:
text3_string += line.strip()
print('text3_string =')
print(text3_string)
写文件
open(filename, 'w')
open()可以接受两个参数,第一个参数为文件名,第二个参数为打开文件的方式:
'w'
表示写入
,会清空原文件内容,若文件不存在则创建;
'a'
表示附加
,在文件末尾添加新内容,若文件不存在则创建;
'r'
表示只读
,若文件不存在则报错;
'r+'
表示读写
,可读可写,若文件不存在则报错;
若第二个参数缺省,则默认以只读方式打开文件。
#在该文件目录下没有file1.txt文件
filename1 = 'file1.txt'
with open(filename1, 'a') as file1:
file1.write('I love Python!\n')
with open(filename1, 'r') as file1:
print(file1.read())
print('---------')
with open(filename1, 'w') as file1:
file1.write('I write Python!\n')
with open(filename1, 'r+') as file1:
print(file1.read()) #因为read()后读到文件末尾
file1.write('I am learning Python!\n') #所以写入也是在末尾写入
print(file1.read())
#如果一开始就写入,则会覆盖原来的内容
print('---------')
with open(filename1) as file1:
print(file1.read())
异常
try:
# 你要执行的代码
except 异常对象 :
# 异常处理
else:
# 依赖与try代码块成功执行的代码都应该放在else代码块中。
pass
#略过,什么也没做。
def cat(file):
try:
with open(file) as f_obj:
# print(f_obj.read())
print(f_obj.readline())
except FileNotFoundError:
print(file + ' Not Exist.')
pass
files = ['cats.txt', 'dogs.txt', 'alice.txt']
for file in files:
cat(file)
JSON
import json
json.dump(data, fileObject)
#将data保存到文件fileObject中
data = json.load(fileObject)
#从文件fileObject中加载数据
# rememberMe.py
# 如果以前存储了用户名,就加载
# 否则,就提示用户输入用户名并存储
import json
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
username = input("What is your name?")
with open(filename, 'w') as f_obj:
json.dump(username, f_obj)
print("We'll remember you when you come back, " + username + "!")
else:
print("Welcome back, " + username + "!")
下面的代码只是为了展示每个函数都执行单一而清晰的任务。
# rememberMeAgain.py
# 如果以前存储了用户名,就加载
# 否则,就提示用户输入用户名并存储
import json
def getStoredUsername():
"""如果存储了用户名,就获取它"""
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
return None
else:
return username
def getNewUsername():
"""提示用户输入用户名"""
filename = 'username.json'
username = input("What is your name? ")
with open(filename, 'w') as f_obj:
json.dump(username, f_obj)
return username
def greetUser():
"""问候用户,并指出其名字"""
username = getStoredUsername()
if username:
print("Welcome back, " + username + "!")
else:
username = getNewUsername()
print("We'll remember you when you come back, " + username + "!")
greetUser()
如果觉得此文章有用,点击这里,万分感谢。
Reference
[美]Eric Matthes著,袁国忠译. Python编程从入门到实践[M]. 北京:人民邮电出版社. 2016.7.