Python:循环遍历不同目录中的文件并扫描数据
我很难在一个不同于脚本编写目录的目录中循环文件。理想情况下,我也希望我的脚本能够遍历所有以sasa开头的文件。文件夹中有几个文件,如sasa.1、sasa.2等。。。以及其他文件,如doc1.pdf、doc2.pdf 我在windows Powershell中使用Python 2.7版 所有东西的位置 1) Python脚本位置ex:Python:循环遍历不同目录中的文件并扫描数据,python,file,loops,directory,Python,File,Loops,Directory,我很难在一个不同于脚本编写目录的目录中循环文件。理想情况下,我也希望我的脚本能够遍历所有以sasa开头的文件。文件夹中有几个文件,如sasa.1、sasa.2等。。。以及其他文件,如doc1.pdf、doc2.pdf 我在windows Powershell中使用Python 2.7版 所有东西的位置 1) Python脚本位置ex:C:Users\user\Python\u项目 2) 主目录ex:C:Users\user\Desktop\Data 3) 当前工作目录ex:C:Users\use
C:Users\user\Python\u项目
2) 主目录ex:C:Users\user\Desktop\Data
3) 当前工作目录ex:C:Users\user\python\u项目
主目录包含100个文件夹(文件夹A、B、C、D等)
每个文件夹都包含许多文件,包括感兴趣的sasa文件
尝试运行脚本
对于1个文件,请执行以下工作:
脚本按以下方式运行:pythonscript1.py
file_path = 'C:Users\user\Desktop\Data\A\sasa.1
def writing_function(file_path):
with open(file_path) as file_object:
lines = file_object.readlines()
for line in lines:
print(lines)
writing_function(file_path)
但是,以下方法不起作用
脚本按以下方式运行:pythonscript1.py A sasa.1
import os
import sys
from os.path import join
dr = sys.argv[1]
file_name = sys.argv[2]
file_path = 'C:Users\user\Desktop\Data'
new_file_path = os.path.join(file_path, dr)
new_file_path2 = os.path.join(new_file_path, file_name)
def writing_function(paths):
with open(paths) as file_object:
lines = file_object.readlines()
for line in lines:
print(line)
writing_function(new_file_path2)
我得到以下错误:
打开(路径)作为文件对象:
IO错误:[Errno 2]没有这样的文件或目录:
'C:Users\\user\\Desktop\\A\\sasa.1'
请注意,我现在只处理一个文件,我希望能够循环浏览文件夹中的所有sasa文件。可以是以下内容:
import os
from os.path import join
def function_exec(file):
code to execute on each file
for root, dirs, files in os.walk('path/to/your/files'): # from your argv[1]
for f in files:
filename = join(root, f)
function_exec(filename)
避免使用变量dir
。这是一个python关键字。尝试打印(目录(操作系统))
另请注意,您可以使用更改目录位置
os.chdir(path)
到目前为止,没有人提到环球公司,到目前为止: 我认为您可以使用它的
**
魔力解决您的问题:
如果recursive为true,则模式“**”将匹配任何文件,并且为零
一个或多个目录和子目录。如果模式后面是
在os.sep中,只有目录和子目录匹配
考虑使用<代码>操作系统.Wave >我是否能够只传递ARGV中的文件夹名,或者必须传递整个文件路径吗?理想情况下,我只想将文件夹名放在参数中,我可能会在代码中找到主文件夹的整个路径,但我希望用户只需将包含文件的文件夹名放在其中。您可以使用
os.path.join()
来加入一个基本目录,例如包含数据的目录“2)主目录ex:C:Users\user\Desktop\Data”和用户输入的目录。在中检查文档如果目录与当前目录相关,也可以使用os.getcwd()获取它您好,我试图解决此问题,但发现自己没有成功。我想知道您是否可以查看我的更新说明。谢谢您的原始路径,我认为C:后缺少一个“\”,现在是“C:用户…”,不应该是C:\用户…我尝试使用os.chdir(文件夹名称)将文件夹名传递到目录时。如何在不知道的情况下传递整个路径?
os.chdir(path)