python编码笔试题

目录

1.打开指定文件,显示文件内容

2.打开文件夹下所有txt文件,并且打开子文件夹,找出所有txt文件。打印出文件名,和文件内容


C:\\Users\\Desktop\\a.txt的内容

bash 复制代码
First line.
Second line.
Third line.

1.打开指定文件,显示文件内容

在 Python 中,使用 with open 语句打开文件时,文件会在代码块执行完毕后自动关闭,无需显式调用 close() 方法。这种模式称为上下文管理器(context manager),它确保资源(如文件)在使用后被正确释放。

语法

python 复制代码
with open('filename.txt', 'r') as file:
    # 文件操作代码
    content = file.read()
# 文件在此处自动关闭

替代方案‌:若需手动控制关闭,可使用 try-finally:

python 复制代码
file = open('filename.txt', 'r')
try:
    content = file.read()
finally:
    file.close()  # 手动关闭
python 复制代码
fname="C:\\Users\\Desktop\\a.txt"
"""1. 使用open函数读取文件
在Python中,读取文件最基本的方式是使用内置的open函数。第1个参数是文件地址,第2个参数是读取模式,第3个参数是编码。这个函数返回一个文件对象,你可以用它来读取文件内容 .with语句确保文件在读取完毕后自动关闭。file.read():读取文件全部内容
"""
print("=======open")
with open(fname,'r',encoding='utf-8') as file:
 content=file.read()
 print(content)

"""
对于大文件,一次性读取全部内容可能会消耗大量内存。按行读取是一个更好的选择。strip()去除每行末尾的换行符
"""
print("=======open\n line")
with open(fname,'r',encoding='utf-8') as file:
 for line in file:
  print(line.strip())

"""
写入文件同样使用open函数,但模式要改为'w'(写入)或'a'(追加)
"""
print("=======w,a")
# 写入文件  
with open(fname, 'w', encoding='utf-8') as file:  
    file.write('Hello, Python!\n')  
    file.write('Welcome to file operations.')  
 
# 追加内容到文件  
with open(fname, 'a', encoding='utf-8') as file:  
    file.write('\nGoodbye, Python!') 
"""
你可以使用writelines方法一次性写入多行内容。
"""
print("=======writelines")
lines_to_write = ['First line.\n', 'Second line.\n', 'Third line.\n']  
with open(fname, 'w', encoding='utf-8') as file:  
    file.writelines(lines_to_write) 
"""
readlines方法会读取文件所有行,并返回一个包含每行内容的列表
"""
print("=======readlines")
with open(fname, 'r', encoding='utf-8') as file:  
    lines = file.readlines()  
    for line in lines:  
        print(line.strip()) 

运行结果

bash 复制代码
=======open
First line.
Second line.
Third line.

=======open
 line
First line.
Second line.
Third line.
=======w,a
=======writelines
=======readlines
First line.
Second line.
Third line.

2.打开文件夹下所有txt文件,并且打开子文件夹,找出所有txt文件。打印出文件名,和文件内容

在Python中,使用os.listdir函数可以列出目录中的文件和子目录。如果你想要递归地打开一个目录及其所有子目录,可以使用os.walk函数,它提供了一个更高级的方式来遍历目录树。

下面os.listdir使用的语法

python 复制代码
import os
 
# 打开文件
COOKED_FOLDER = 'C:\\Users\\Desktop\\'  #文件夹的地址
dirs = os.listdir( COOKED_FOLDER )
 
# 输出所有文件和文件夹
for file in dirs:
   #print(file)  #输出所有文件夹名字
   filepath = COOKED_FOLDER + file  #文件所在地址
   lname=file.split(".")[-1] if "." in file else "" #如果没有if else,文件名没有后缀的时候,lname就是文件名
   #print(lname)
   if lname=='txt': 
    print(filepath)
    with open(filepath,'r') as f:   #读取文件
      for line in f :  #          #按行遍历文件内容
         print(line)  #输出每行信息

打开了桌面文件夹,发现下面只有一个txt文件。输出结果

bash 复制代码
C:\Users\Desktop\a.txt
First line.

Second line.

Third line.

下面是使用os.walk的语法

python 复制代码
import os 
# 打开文件
fname = 'C:\\Users\\99757\\Desktop\\exa'  #文件夹的地址
#定义函数
def readd(top_dir):
  for root,dirs,files in os.walk(top_dir):
    for file in files:
       if (file.endswith('.txt')):
          print(f'文件:{root},{file}')

readd(fname)#调用函数

在这个示例中,os.walk(top_dir)会生成一个三元组(root, dirs, files),其中:

root是当前正在遍历的目录路径。

dirs是一个包含root下所有子目录名的列表。

files是一个包含root下所有非目录文件名的列表。

通过这种方式,你可以递归地访问和打印出所有子目录和文件。如果你想对每个子目录进行进一步的操作,你可以在循环遍历dirs时添加你的代码。

相关推荐
寻星探路2 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
ValhallaCoder4 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
猫头虎5 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
八零后琐话6 小时前
干货:程序员必备性能分析工具——Arthas火焰图
开发语言·python
青春不朽5127 小时前
Scrapy框架入门指南
python·scrapy
MZ_ZXD0017 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
全栈老石8 小时前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python
梨落秋霜8 小时前
Python入门篇【模块/包】
python
阔皮大师9 小时前
INote轻量文本编辑器
java·javascript·python·c#