正在读取 python 中文件夹发生变化的新文件
Reading new file with change in folder in python
我正在使用 import os
库处理当前目录中的所有文件夹。但是,我需要程序在每次开始遍历目录中的新文件夹时询问文件名或路径。
例子:
假设目录中有两个文件夹即:
- 电平控制
- 级别变化。
当程序遍历 Level Control 文件夹时,它应该读取文件 a.txt
。当遍历 Level Change 文件夹时,它应该读取文件 b.txt
。还假设这两个文件都在同一目录中。
通过查看您的描述,以下代码应该可以工作 (Python 3.x),但是您的描述中没有提到某些情况(例如如何处理包含文件夹和文件的文件夹),所以你可能需要做一些修改。
import os
def walk(root):
dirs = []
for item in os.listdir(root):
if os.path.isdir(os.path.join(root,item)):
dirs.append(item)
if len(dirs) > 0:
for n,d in enumerate(dirs):
print(f'[{n}] : {d}')
folder = input('which folder ? ')
path = os.path.join(root, folder)
if os.path.isdir(path):
walk(path)
print('Invalid path')
else:
for file in os.listdir(root):
print(f'read : {file}')
walk('.')
您可以使用os.listdir()代替os.walk(),因为您需要根据当前目录中的内容进行操作。
我正在使用 import os
库处理当前目录中的所有文件夹。但是,我需要程序在每次开始遍历目录中的新文件夹时询问文件名或路径。
例子:
假设目录中有两个文件夹即:
- 电平控制
- 级别变化。
当程序遍历 Level Control 文件夹时,它应该读取文件 a.txt
。当遍历 Level Change 文件夹时,它应该读取文件 b.txt
。还假设这两个文件都在同一目录中。
通过查看您的描述,以下代码应该可以工作 (Python 3.x),但是您的描述中没有提到某些情况(例如如何处理包含文件夹和文件的文件夹),所以你可能需要做一些修改。
import os
def walk(root):
dirs = []
for item in os.listdir(root):
if os.path.isdir(os.path.join(root,item)):
dirs.append(item)
if len(dirs) > 0:
for n,d in enumerate(dirs):
print(f'[{n}] : {d}')
folder = input('which folder ? ')
path = os.path.join(root, folder)
if os.path.isdir(path):
walk(path)
print('Invalid path')
else:
for file in os.listdir(root):
print(f'read : {file}')
walk('.')
您可以使用os.listdir()代替os.walk(),因为您需要根据当前目录中的内容进行操作。