本文共 2284 字,大约阅读时间需要 7 分钟。
文件是计算机存储中的一些信息或数据。文本文件和二进制文件是常见的文件类型。Python 提供了简单的文件操作方式。
with 语句lscpu 命令的实现使用 open() 函数打开文件。需要两个参数:
常见模式:
r:只读模式w:写入模式(若文件存在则删除内容)a:追加模式默认模式为只读。我们准备实验材料,下载并打开文件:
wget http://labfile.oss.aliyuncs.com/courses/596/sample.txt
在 Python 中打开文件:
fobj = open("sample.txt") 打开文件后,务必关闭。使用 close() 方法:
fobj.close()
关闭文件的重要性:
读取文件内容:
read()readline() 或 readlines()示例:
fobj = open("sample.txt")print(fobj.read()) # 输出全部内容print(fobj.readline()) # 读取一行fobj.close() 读取文件时,逐行读取更高效。可以用 read(size) 读取指定长度数据。
写入文件:
write() 方法示例:
fobj = open("ircnicks.txt", "w")fobj.write("powerpork\n")fobj.write("indrag\n")fobj.close() 验证文件内容:
fobj = open("ircnicks.txt")print(fobj.read())fobj.close() 5.1. 拷贝文件
将文件内容从一个文件复制到另一个文件。使用sys.argv 获取命令行参数: #!/usr/bin/env python3import sysif len(sys.argv) < 3: print("错误:参数不足") print("./copyfile.py file1 file2") sys.exit(1)f1 = open(sys.argv[1])s = f1.read()f1.close()f2 = open(sys.argv[2], "w")f2.write(s)f2.close() 运行程序:
./copyfile.py sample.txt newfile.txt
5.2. 文本文件信息统计
统计空格、制表符和行数:#!/usr/bin/env python3import osimport sysdef parse_file(path): """分析文本文件,返回空格、制表符和行数""" fd = open(path) spaces = 0 tabs = 0 lines = 0 for line in fd: spaces += line.count(' ') tabs += line.count('\t') lines += 1 fd.close() return spaces, tabs, linesdef main(path): """打印文件分析结果""" if os.path.exists(path): spaces, tabs, lines = parse_file(path) print(f"空格数:{spaces},制表符数:{tabs},行数:{lines}") return True else: print(f"文件 {path} 不存在") return Falseif __name__ == "__main__": if len(sys.argv) > 1: main(sys.argv[1]) else: sys.exit(-1)sys.exit(0) 运行程序:
./filestats.py sample.txt
with 语句推荐使用 with 语句管理文件:
with open("sample.txt") as fobj: for line in fobj: print(line) with 语句的优势:
lscpu 命令lscpu 命令显示 CPU 信息。我们可以通过读取 /proc/cpuinfo 文件实现:
with open("/proc/cpuinfo", "r") as fcpu: for line in fcpu: print(line.strip()) lscpu 的实现原理:
/proc/cpuinfo 文件本实验学习了文件的基本操作,包括打开、读取、写入和关闭文件。通过 with 语句优化了文件管理,避免了手动关闭文件的麻烦。在 Linux 中,文件操作是日常工作的重要技能。lscpu 命令的实现展示了对系统资源的深入理解。
转载地址:http://teqfk.baihongyu.com/