好的,我正在做一个项目,它监视两个选定的文件夹,并自动将在过去24小时内创建或编辑的文件从Folder_A移动到Folder_B,当用户单击“扫描”按钮时,它也将手动检查这两个文件夹。到目前为止,它将选择这两个文件夹,但是当我单击“扫描”按钮时,会得到这个错误。我该如何纠正错误呢?我的代码在错误下面。请理解我对python还很陌生,所以这里可能会有一些非常愚蠢的错误。
File
"C:\Users\--\AppData\Local\Programs\Python\Python310\Projects\File_transfer.py", line 63, in <mo
我正在为下列功能编写单元测试:
def create_zip(path,zipf):
#Create zip files
for root, dirs, files in os.walk(path):
for file in files:
#write all json files to a zip file
for name in glob.glob('*.json'):
os.chdir(root)
#write files to
这是一个演示,什么对我有效,什么对我无效:
import os
path2 = 'D:\\'
# this works
for curdir, dirlist, flist in os.walk(path2):
pass
# this fails
curdir, dirlist, flist = os.walk(path2)
for files in os.walk("Path of a directory"):
for file in files:
print(os.path.getmtime(os.path.abspath(file)))
为什么会出现这个错误?
Traceback (most recent call last):
File "L:/script/python_scripts/dir_Traverse.py", line 7, in <module>
print(os.path.getmtime(os.path.ab
我正在尝试遍历目录并进行计数,因此最终程序输出将如下所示:
output:
./file last accessed 1/1/2000 # just sample date
./dirA has 1 file and 1 sub-dir
./dirA/test/ has 5 files
以下是代码,但我现在没有想法了:
directories = [startDir]
#!/usr/bin/python
import os,os.path, time
startDir = os.getcwd()
fileCount=0
directoryCount=0
while len(dire
考虑以下场景:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
walk = os.walk('/home')
for root, dirs, files in walk:
for pathname in dirs+files:
print os.path.join(root, pathname)
for root, dirs, files in walk:
for pathname in dirs+files:
print os.path.join(root,
如何限制os.walk只返回我提供的目录中的文件?
def _dir_list(self, dir_name, whitelist):
outputList = []
for root, dirs, files in os.walk(dir_name):
for f in files:
if os.path.splitext(f)[1] in whitelist:
outputList.append(os.path.join(root, f))
else:
对于那些了解perl的人来说,我正在寻找一些类似于Python中的的东西。
在中,我已经可以方便地比较嵌套的数据结构,如果我希望它们相等的话:
self.assertEqual(os.walk('some_path'),
my.walk('some_path'),
"compare os.walk with my own implementation")
但是,在想要的测试中,os.walk元组的相应子列表中的文件顺序应该不重要。
如果只有这一个测试,那么编写一个简单的解决方案就
为什么Unix命令和python的结果是不同的?
使用查找命令
rahul@home-pc:~$ find /opt/ -type f | wc -l
1331
使用Python2.7.3
In [31]: sum([len(f) for p,d,f in os.walk('/opt/') ])
Out[31]: 1340
In [32]: t=0
In [33]: for p,d,f in os.walk('/opt'):
t = t + len(f)
In [34]: t
Out[34]: 1340
那么,如何使用python
code1
import os
def walk_dir(dirname):
for d in os.listdir(dirname):
path = os.path.join(dirname, d)
if os.path.isdir(path):
for f in walk_dir(path):
print f
else:
yield
我有一个名为notes的文件夹,它们自然会被归类到文件夹中,在这些文件夹中也会有对子类别的子文件夹。现在我的问题是,我有一个遍历三级子目录的函数:
def obtainFiles(path):
list_of_files = {}
for element in os.listdir(path):
# if the element is an html file then..
if element[-5:] == ".html":
list_of_files[element] = path
下面的代码正在抛出一个ValueError:太多的值需要解包
if remote_folder is not None:
for directory_name, files in os.walk(file_path):
for filename in files:
remote_folder.key = os.path.join(
remote_file_path,
directory_name,
我在一个大硬盘上使用python进行文件查找。我一直在研究os.walk和glob。我通常使用os.walk,因为我发现它更整洁,而且似乎更快(对于通常大小的目录)。
有没有人对这两种方法都有经验,可以说哪一种更有效?正如我所说的,glob似乎更慢,但你可以使用通配符等,就像walk一样,你必须过滤结果。下面是一个查找核心转储的示例。
core = re.compile(r"core\.\d*")
for root, dirs, files in os.walk("/path/to/dir/")
for file in files:
if
当我想要添加所有文件夹时,字典"d“只包含最新的迭代子文件夹键和值。我不明白为什么在文件夹更改后,我的字典开始从空字典中进行更新。
import os
from os.path import join
for (dirname, dirs, files) in os.walk('.'):
d = dict()
for filename in files:
if filename.endswith('.txt') :
value_thefile = os.path.join(dirname,file
我想列出所有同名的文件,而不管它们的扩展名是什么.
当我尝试搜索没有扩展名的文件名时,当我提到具有扩展名的文件名时,os.walk会产生空列表。它列出所有存在于具有相同名称和扩展名的目录中的文件。
def get_all_files(path):
Datafiles=[]
for root,dirs,files in os.walk(path):
for file in files:
pathname=os.path.join(root,file)
Datafiles.append([file,pathname]
我使用os.walk()检查一个目录中的冗余文件并列出它们。伪代码看起来如下所示:
def checkPath(path):
do the for dirname, dirnames, filenames in os.walk(path) thing here...
pathList = ["path1", "path2"]
for each in pathList:
checkPath(each)
所以这在第一次运行时很好,我得到了预期的所有内容,但是在第二条路径上的下一个os.walk上,它直接跳过了……没有什么文件名、脏名、文件名。我做
我试图通过迭代文件夹中的文件来比较不同文件夹中的两个不同的文件扩展名。
import os
from os.path import splitext
hpath = os.path.dirname(r'C:\Monarch')
dpath = os.path.dirname(r'C:\DOLV')
documents = set([splitext(filename)[0] for filename in dpath])
matches = [filename for filename in set(hpath) if splitext(filename)[0
我有这样的文件夹结构:
Template
- Template1
- Template2
TemplateTest
- TemplateTest1
Config
- TemplateConfig
对于每个文件名和每个文件夹名,我想将“模板”替换为“MyApp”。
这是我的密码:
for root, dirs, files in os.walk(path):
for name in files:
if name.startswith("Template"):
replace = name.replace("T
在我的工作代码中,我有一个
import paramiko
parent=os.path.split(dir_local)[1]
for walker in os.walk(parent):
try:
self.sftp.mkdir(os.path.join(dir_remote,walker))
except:
pass
for file in walker[2]:
sftp.put(os.path.join(walker[0],file),os.path.join(dir_remote,walker[0],file))
现在显示的错误
如果路径同时包含"release“和"arm-linux”,我需要阻止os.walk进一步下降。我有一堆不同级别的目录。所以我不能简单地说了算。到目前为止,我有以下内容,它不必要地跳过了‘arm’中的目录。
def main(argv):
for root, dirs, files in os.walk("."):
path = root.split(os.sep)
if "release" and "arm-linux" in path:
我的问题是:假设我想创建一个文件同步函数,它遍历两个相似目录的所有文件夹和子文件夹,并检测这两个目录的所有公共文件夹/子文件夹。我尝试将os.walk模块和filecmp模块结合起来。到目前为止,我的代码如下所示:
import filecmp
import os
src=r"C:\Users\j2the\Documents\Test3"
dst=r"C:\Users\j2the\Documents\Test4"
comparison = filecmp.dircmp(dst, src)
for dirpath,dirnames,filenames in
我想知道是否可以在不使用os.walk的情况下将所有文件放到一个列表中,即使它们存在于不同的子目录中 我编写的函数可以完成这项工作,但我不希望文件以嵌套列表的形式显示。我需要他们出现在一个单独的列表中。 import os
def cerca(dir1):
lista1 = []
for fname in os.listdir(dir1):
path = os.path.join(dir1,fname)
if fname.startswith('.') : continue
if os.pat
我正在尝试按以下顺序执行以下操作:
使用os.walk()进入每个目录。
每个目录都有subfolders,但我只对第一个subfolder感兴趣。因此,该目录如下所示:
/home/RawData/SubFolder1/SubFolder2
例如。我希望在RawData2中有一个在SubFolder1级别停止的文件夹。
问题是,os.walk()似乎遍历了所有的RawData文件夹,而我不确定如何让它停止。
下面是我到目前为止所做的-我已经尝试了许多其他的组合,用变量目录代替根目录或文件,但似乎没有得到我想要的。
import os
for root, dirs, files in os
我有一个文件夹,其中包含一些不同类型的文件(.cpp、.hpp、.ipp ...)在该文件夹中有多个子文件夹,其中也包含这些不同的文件类型。我的问题是,有没有一个循环可以让我搜索第一个主文件夹,并返回一个包含所有.cpp文件的列表?到目前为止,我知道: folder_list = [f for f in os.listdir(os.getcwd()) if os.path.isdir(f)] 将返回子文件夹的列表,然后我可以更改工作目录并获得要附加的文件列表。 我也知道: file_list = [f for f in listdir(os.getcwd()) if isfile(join(
我有一个程序,监测文件夹与word文档所做的任何修改文件。当我运行程序、打开文件夹中的.doc、进行一些更改并保存它时,会出现错误-Windows Error2 The system run find The file。对如何解决这个问题有什么建议吗?
Edit1:实际错误代码如下所示
File "C:\Users\keinsfield\Desktop\docu.py", line 27, in check
if info[0]==os.stat(os.path.join(r"C:\Users\keinsfield\Desktop\colegio",fil
我正在研究os.walk()方法。 我所能找到的所有示例都显示了用法: for root, dirs, files in os.walk(trackeddir):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
... 然而,当我尝试:root, dirs, files = os.walk(trackeddir)时,我得到了一个异常:“要解包的值太多了(预期为3)” 在调试期间,我尝试
我已经做了一个Python程序,它将清理我下载的洪流files+folders中存在的不必要的名称,这样我就可以将它上传到我的无限Google存储帐户中,而不会有太多麻烦。
但是,它在一定次数的迭代之后给出了:WindowsError: [Error 2] The system cannot find the file specified。如果我再次运行该程序,它对某个迭代很好,然后会弹出相同的错误.。
请注意,我已经采取了预防措施,使用os.path.join来避免这一错误,但它总是出现。由于这个错误,我必须在选定的文件夹/驱动器上运行该程序数十次。
这是我的节目:
import os
te
我是Python的新手--我在命令提示符中编写了这段代码,它运行得很好。但是,当我将它写入一个.py文件并运行它时,它会显示StopIteration错误。
import os
x = next(os.walk('E:/pycode/images'))[1]
for y in x:
z = next(os.walk(y))[2]
print(z)
请帮帮忙。谢谢
我试图通过用户输入获取目录路径,然后使用os.walk()遍历目录。如果我试图输入一个有空格的路径,我的程序就会中断。“用户/用户/有空格/文件夹/”)。
:使用用户的空格输入目录的正确方法是什么?(Python3)
我的代码看起来像是:
fileDirectory = input("Enter in a path to import")
try:
for root, dirs, files in os.walk(shlex.quote(fileDirectory)):
for f in files:
print