楼主: 丁小天
356 0

[程序分享] 打印文件夹下的目录结构 [推广有奖]

  • 0关注
  • 0粉丝

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
206 点
帖子
3
精华
0
在线时间
2 小时
注册时间
2024-6-19
最后登录
2024-6-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
<!-- markdown css tag --><div class="pinggu_markdown">
<div class="pinggu_markdown__html"><pre class=" language-python"><code class="prism  language-python"><span class="token keyword">import</span> os  
  
txt <span class="token operator">=</span> <span class="token triple-quoted-string string">""""""  
  
  
def print_directory_tree(root_dir, level=0, ignore_dirs=None, ignore_files=None):  
    """</span>  
  <span class="token punctuation">:</span>param root_dir<span class="token punctuation">:</span> 要打印的目录  
  <span class="token punctuation">:</span>param level<span class="token punctuation">:</span> 用于记录当前的层级,用于控制打印时的缩进  
  <span class="token punctuation">:</span>param ignore_dirs<span class="token punctuation">:</span> 要忽略的目录  
  <span class="token punctuation">:</span>param ignore_files<span class="token punctuation">:</span> 要忽略的文件  
  <span class="token punctuation">:</span><span class="token keyword">return</span><span class="token punctuation">:</span>  
<span class="token string">""</span>"  <span class="token keyword">global</span> txt  
    <span class="token keyword">if</span> ignore_files <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span>  
       ignore_files <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>  
    <span class="token keyword">if</span> ignore_dirs <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span>  
       ignore_dirs <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>  
    <span class="token keyword">for</span> item <span class="token keyword">in</span> os<span class="token punctuation">.</span>listdir<span class="token punctuation">(</span>root_dir<span class="token punctuation">)</span><span class="token punctuation">:</span>  
       <span class="token keyword">if</span> item <span class="token keyword">in</span> ignore_dirs<span class="token punctuation">:</span>  
          <span class="token keyword">continue</span>  
<span class="token keyword">if</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>isfile<span class="token punctuation">(</span>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>root_dir<span class="token punctuation">,</span> item<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>  
          <span class="token keyword">if</span> item <span class="token operator">not</span> <span class="token keyword">in</span> ignore_files<span class="token punctuation">:</span>  
             txt <span class="token operator">+=</span> <span class="token string">"|   "</span> <span class="token operator">*</span> level <span class="token operator">+</span> <span class="token string">"|-- "</span> <span class="token operator">+</span> item <span class="token operator">+</span> <span class="token string">"\n"</span>  
  <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"|   "</span> <span class="token operator">*</span> level <span class="token operator">+</span> <span class="token string">"|-- "</span> <span class="token operator">+</span> item<span class="token punctuation">)</span>  
       <span class="token keyword">else</span><span class="token punctuation">:</span>  
          txt <span class="token operator">+=</span> <span class="token string">"|   "</span> <span class="token operator">*</span> level <span class="token operator">+</span> <span class="token string">"|-- "</span> <span class="token operator">+</span> item <span class="token operator">+</span> <span class="token string">"/"</span> <span class="token operator">+</span> <span class="token string">"\n"</span>  
  <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"|   "</span> <span class="token operator">*</span> level <span class="token operator">+</span> <span class="token string">"|-- "</span> <span class="token operator">+</span> item <span class="token operator">+</span> <span class="token string">"/"</span><span class="token punctuation">)</span>  
          print_directory_tree<span class="token punctuation">(</span>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>root_dir<span class="token punctuation">,</span> item<span class="token punctuation">)</span><span class="token punctuation">,</span> level <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">,</span> ignore_dirs<span class="token punctuation">,</span> ignore_files<span class="token punctuation">)</span>  
  
  
<span class="token comment"># print_directory_tree("./", ignore_dirs=[".git"], ignore_files=["README.md"])  </span>
print_directory_tree<span class="token punctuation">(</span><span class="token string">"./"</span><span class="token punctuation">)</span>  
<span class="token keyword">if</span> txt<span class="token punctuation">:</span>  
    <span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"tmp.txt"</span><span class="token punctuation">,</span> <span class="token string">'w'</span><span class="token punctuation">,</span> encoding<span class="token operator">=</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>  
       f<span class="token punctuation">.</span>write<span class="token punctuation">(</span>txt<span class="token punctuation">)</span>
</code></pre>
</div>
</div>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:文件夹 directory Director continue Direct

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-9-8 07:57