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时添加你的代码。

相关推荐
祝余Eleanor2 小时前
Day37 模型可视化与推理
人工智能·python·深度学习
sg_knight2 小时前
Python 面向对象基础复习
开发语言·python·ai编程·面向对象·模型
dhdjjsjs2 小时前
Day35 PythonStudy
python
如竟没有火炬3 小时前
四数相加贰——哈希表
数据结构·python·算法·leetcode·散列表
背心2块钱包邮3 小时前
第9节——部分分式积分(Partial Fraction Decomposition)
人工智能·python·算法·机器学习·matplotlib
木盏3 小时前
三维高斯的分裂
开发语言·python
a程序小傲3 小时前
京东Java面试被问:ZGC的染色指针如何实现?内存屏障如何处理?
java·后端·python·面试
大连好光景4 小时前
批量匿名数据重识别(debug记录)
开发语言·python
暴风鱼划水4 小时前
算法题(Python)哈希表 | 2.两个数组的交集
python·算法·哈希表