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']
上次编辑于:
贡献者: 15327360835
Loading...