Python输入输出
大约 2 分钟
输入输出
格式化输出
import json
# 格式化字符串字面量
year = 2026
event = "Referendum"
# 在字符串前加f或F,即可使用变量
print(f'Results of the {year} {event}')
# 冒号后可跟格式化描述符:.3f保留3位小数、>n右对齐补空格、<n左对齐
import math
print(f'pi ≈ {math.pi:.3f}') # pi ≈ 3.142
print(f'[{92.5:>8.1f}]') # [ 92.5],右对齐,总宽度8,保留1位小数
table2 = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
for name, phone in table2.items():
print(f'{name:8} ==> {phone:6d}')
# Sjoerd ==> 4127
# Jack ==> 4098
# Dcab ==> 7678
# str.format()方法
print("今年是{}年".format(year)) # 今年是2026年
print('{1} and {0}'.format('spam', 'eggs')) # eggs and spam
print('This {food} is {adjective}.'.format(
food='spam', adjective='absolutely horrible')) # This spam is absolutely horrible.
table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '
'Dcab: {0[Dcab]:d}'.format(table)) # Jack: 4098; Sjoerd: 4127; Dcab: 8637678
for x in range(1, 11):
print('{0:d} {1:d} {2:d}'.format(x, x * x, x * x * x))
读写文件
import json
# open('workfile', 'w', encoding="utf-8"),第一个参数是文件名,第二个参数为对文件的权限,第三个参数为编码格式,通常utf-8
# 1. windows上结束符为\r\n,Linux/macOS上为\n
# 2. 处理文件最好使用with关键字,子句结束后会自动关闭文件
with open('file.txt', 'w+', encoding='utf-8') as f:
tell1 = f.tell()
print('tell1:', tell1)
# 读取整个文件数据
# content = f.read() # 参数size可选,省略或为负数时返回整个文件的内容;size为其他值时,读取并返回最多size个字符。若已到文件末尾,返回''。
# print('全文件内容:', content)
# 读取单行数据
# lineData = f.readline()
# print('第一行内容:', lineData)
# 循环读取行数据
# for lin in f:
# print(lin)
# 写入
f.write('hello world\n')
# 写入之前需转为字符串
value = ('the answer', 42)
s = str(value) # 将元组转换为字符串
f.write(s)
# f.tell():当前指针位置
tell = f.tell()
print('tell:', tell)
# f.seek(offset, whence):修改指针位置,offset表示移动量,whence:为 0 时,表示从文件开头计算,1 表示使用当前文件位置,2 表示使用文件末尾作为参考点
f.seek(1)
f.write('第一\n') # 从索引1开始写入
# JSON格式化
x = [1, 'simple', 'list']
f.write(json.dumps(x))
print("JSON格式化:", json.dumps(x))
print("反序列化:", json.loads(json.dumps(x))[1]) # simple
# with语句结束后文件已自动关闭,无需手动调用f.close()
JSON 读写
json.dumps 将 Python 对象序列化为 JSON 字符串,json.loads 将 JSON 字符串反序列化为 Python 对象。
import json
person = {"name": "时游", "age": 28, "skills": ["python", "js"]}
# 序列化:ensure_ascii=False 让中文正常显示
text = json.dumps(person, ensure_ascii=False)
print(text) # {"name": "时游", "age": 28, "skills": ["python", "js"]}
# 反序列化
obj = json.loads(text)
print(obj["name"]) # 时游
# 直接读写JSON文件
with open('person.json', 'w', encoding='utf-8') as f:
json.dump(person, f, ensure_ascii=False)
with open('person.json', encoding='utf-8') as f:
print(json.load(f)["skills"]) # ['python', 'js']
Loading...
