我知道我们可以使用os.walk()列出目录中的所有子目录或所有文件.但是,我想列出完整的目录树内容:
如何在Python中实现这一目标?
我正在使用Python 2.7
我正在尝试从Python运行StatTransfer程序。
当我尝试:
tempname = os.path.abspath('./text.txt')
TEMPFILE = open(tempname, 'wb')
try:
subprocess.check_call('ST convert.stc', shell = True, stdout = TEMPFILE, stderr = TEMPFILE)
except:
raise CritError(messages.crit_error_bad_command)
Run Code Online (Sandbox Code Playgroud)
它失败(CritError是用户定义的)。
追溯不会告诉我任何有用的信息:
Traceback (most recent call last):
File "C:\...\py\run_program.py", line 181, in run_stcmd
run.execute_run(current_directory, posix_command, nt_command)
File "C:\...\py\private\runprogramdirective.py", line 99, in execute_run
raise CritError(messages.crit_error_bad_command)
CritError: 'ERROR! Cannot execute command'
Run Code Online (Sandbox Code Playgroud)
但是将相关行更改为:
subprocess.call('ST convert.stc', shell = True, stdout = TEMPFILE, stderr = TEMPFILE)
Run Code Online (Sandbox Code Playgroud)
它运行成功。
有趣的是,在两种情况下,我的TEMPFILE都显示相同的内容:
|/-|/-|/-|/-|/- |/-|/-|/-|/-|/- Stat/Transfer - Command Processor (c) 1986-2011 Circle Systems, Inc. …
Run Code Online (Sandbox Code Playgroud) 我有一个非常复杂的模型,需要解决许多参数。尽管模型复杂,但每一步的函数形式都不是不规则的。
我看到一些带有起始值的奇怪行为。如果我从标准的随机值(全为 0)开始,求解器会在 673 秒内收敛于“找到局部最优解”,0 次 CG 迭代。
如果我从我知道接近解的值开始,求解器会收敛于“原始可行解估计无法改进。”,493 次 CG 迭代,1718 秒。
请注意,在这两种情况下,最终值相同(或非常相似)。
2个问题:
这是原始代码块及其结果:
码:
if os.path.isdir(top):
for root, dirs, files in os.walk(top, topdown = True):
for dirname in dirs:
print 'Dirname = ', os.path.join(root, dirname)
Run Code Online (Sandbox Code Playgroud)
结果:
Dirname = ../output/.svn
Dirname = ../output/a random folder
Dirname = ../output/a random folder - copy
Dirname = ../output/.svn\pristine
Dirname = ../output/.svn\temp
Dirname = ../output/.svn\pristine\04
Dirname = ../output/.svn\pristine\59
Dirname = ../output/a random folder\another one inside
Dirname = ../output/a random folder\another one inside - Copy
Dirname = ../output/a random folder\another one inside - Copy (2)
Run Code Online (Sandbox Code Playgroud)
现在我想忽略所有隐藏的文件夹和子文件夹.这是修改后的代码及其结果:
码:
if …
Run Code Online (Sandbox Code Playgroud)