Featured image of post Python Basic 07 命令行IO

Python Basic 07 命令行IO

本篇文章主要介绍Python的命令行IO

标准输出 - print()

最常用的输出函数,默认输出到控制台( ̄▽ ̄*)

1
2
3
print("Hello World!")  # 输出字符串
print(42)              # 输出数字
print([1, 2, 3])       # 输出列表

格式化输出方式

1
2
3
4
5
6
7
name = "Alice"
age = 25
# f-string (Python 3.6+推荐)
print(f"{name} is {age} years old!") 

# format方法
print("{} is {} years old!".format(name, age))

标准输入 - input()

从命令行获取用户输入(๑•̀ㅂ•́)و✧

基础用法:

1
2
name = input("请输入你的名字: ")  # 提示语是可选的
print(f"你好,{name}!")

⚠️ 注意:

  • input()永远返回字符串类型
  • 需要其他类型要用类型转换:
1
age = int(input("请输入年龄: "))  # 转换为整数

命令行参数 - sys.argv

程序启动时传递的参数可以通过sys模块获取(ノ◕ヮ◕)ノ*:・゚✧

1
2
3
4
import sys

print("脚本名:", sys.argv[0])  # 第一个参数总是脚本名称
print("参数列表:", sys.argv[1:])  # 后续是传递的参数

运行示例:

1
python script.py arg1 arg2

文件描述符操作

更底层的方式是直接操作文件描述符(ง •_•)ง

1
2
3
4
5
6
7
import sys

# 标准错误输出
sys.stderr.write("这是一个错误消息\n")

# 标准输入读取(一行)
line = sys.stdin.readline()

高级技巧 - 重定向

可以临时重定向标准输入输出٩(◕‿◕。)۶

1
2
3
4
5
6
7
import sys

with open('output.txt', 'w') as f:
    sys.stdout = f  # 重定向标准输出
    print("这会被写入文件")

sys.stdout = sys.__stdout__  # 恢复默认

最佳实践小贴士

  1. 用户输入要始终验证
1
2
3
4
5
6
while True:
    try:
        num = int(input("请输入数字: "))
        break
    except ValueError:
        print("输入无效,请重试!")
  1. 大量输出时考虑缓冲:
1
2
import sys
sys.stdout.flush()  # 手动刷新缓冲区
  1. 跨平台换行符:
1
print("line1", "line2", sep=os.linesep)  # 自动适应系统换行符

这些就是Python命令行I/O的基础知识啦!(≧∇≦)ノ 要进行更复杂的操作,还可以探索argparse模块(处理命令行参数)和logging模块(日志记录)哦~

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计