扫码关注官方订阅号
对项目进行打包,所有 .pyc 文件需要移除。 由于有的 .pyc 文件在子目录里,所有不知道该怎么遍历移除,求解?
学习是最好的投资!
如果你使用的是linux或者mac,在终端执行这样的操作
find /tmp -name "*.pyc" | xargs rm -rf
如果提示Permission denied,则使用
sudo find /tmp -name "*.pyc" | xargs rm -rf
将上面的/tmp替换成工程目录即可。这个命令会遍历删除工程目录(含子目录)下的pyc文件。
rm **/*.pyc
补充说明:在bash下要在~/.bashrc中添加shopt -s globstar
~/.bashrc
shopt -s globstar
在打包时忽略 .pyc 文件或许是个更方便的办法。tar和zip都可以加上 --exclude=*.pyc 参数来排除 pyc 文件
tar
zip
--exclude=*.pyc
提交到 github 的时候 .ignore github 有zip下载 呵呵,折叠我.
Ubuntu下,我用的是:
find -iname "*.pyc" -exec rm -f {} \;
find . -type f -name "*.py[co]" -delete
find /path -type f -name "*.pyc" -delete
Python打包? 如果是用的egg方式, 应该不需要去删除的吧
rm `find /dirpath -type f -name "*.pyc"`
windows可以用这个,另存为delete_file.js。 linux下根本不用这么费事,一个rm就搞定了。。。 修改要删除的文件后缀名file_end
/// Global ---------------------------------------------------- var file_end = "pyc"; var consoleOnly = true; var defaultTimeout = 1; var WSShell; var fso; var currentFolder; var ForReading = 1, ForWriting = 2, ForAppending = 8; var CharSetDefault = -2, CharSetUnicode = -1, CharSetAscii = 0; var AttrNormal = 0, AttrReadOnly = 1, AttrHidden = 2, AttrSystem = 4, AttrVolume = 8, AttrDirectory = 16, AttrArchive = 32, AttrAlias = 1024, AttrCompressed = 2048; Init(); Main(); function Init() { // detect command line try { WScript.StdOut.WriteLine(" "); } catch (e) { consoleOnly = false; } // initialize WSShell = new ActiveXObject("WScript.Shell"); fso = new ActiveXObject("Scripting.FileSystemObject"); currentFolder = GetCurrentFolder(); } function Main() { var text; text = "开始处理."; Out(text, true); COut("当前工作目录: \r\n" + currentFolder); var files = FindFiles("[.]*[.]" + file_end); COut("共有 " + files.length + " 个 ." + file_end + " 文件"); var deleted = 0; for(var i=0;i<files.length;i++){ var f = fso.GetFile(files[i]); f.Delete(true); deleted++; } Out("成功删除了 " + deleted + " 个 ." + file_end + " 文件", false); } /// Files ------------------------------------------------------ // getcurrent folder function GetCurrentFolder() { return fso.GetFolder(fso.GetFile(WScript.ScriptFullName).ParentFolder); } /// Output ------------------------------------------------------ // output function Out(text, useTimeout) { if (useTimeout) { useTimeout = defaultTimeout; } else { useTimeout = -1; } if (consoleOnly) { WScript.StdOut.WriteLine(text); } else { WSShell.Popup(text, useTimeout, "删除 ." + file_end + " 文件"); } } // output function COut(text, useTimeout) { if (useTimeout) { useTimeout = defaultTimeout; } else { useTimeout = -1; } if (consoleOnly) { WScript.StdOut.WriteLine(text); } } function ReadFile(file) { var stream = file.OpenAsTextStream(ForReading, CharSetDefault); text = stream.ReadAll(); stream.Close(); return text; } function WriteFile(file, text) { var ro = ((file.Attributes & AttrReadOnly) != 0); if (ro) file.Attributes -= AttrReadOnly; var stream = file.OpenAsTextStream(ForWriting, CharSetDefault); stream.Write(text); stream.Close(); if (ro) file.Attributes += AttrReadOnly; } // determine, if filename matches given mask function MatchesMask(file, mask) { return new RegExp(mask).test(file); } // find files function FindFiles(mask) { return GetFiles(currentFolder, mask); } // get files in current folder & subfolders function GetFiles(folder, mask) { var result = new Array(); // do files in current folder var files = new Enumerator(folder.Files); for (; !files.atEnd(); files.moveNext()) { if (MatchesMask(files.item(), mask)) { result.push("" + files.item()); } } // do subfolders in current folder var folders = new Enumerator(folder.SubFolders); for (; !folders.atEnd(); folders.moveNext()) { result = result.concat(GetFiles(folders.item(), mask)); } return result; }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
如果你使用的是linux或者mac,在终端执行这样的操作
如果提示Permission denied,则使用
将上面的/tmp替换成工程目录即可。这个命令会遍历删除工程目录(含子目录)下的pyc文件。
rm **/*.pyc补充说明:在bash下要在
~/.bashrc中添加shopt -s globstar在打包时忽略 .pyc 文件或许是个更方便的办法。
tar和zip都可以加上--exclude=*.pyc参数来排除 pyc 文件提交到 github 的时候 .ignore
github 有zip下载
呵呵,折叠我.
Ubuntu下,我用的是:
find /path -type f -name "*.pyc" -delete
Python打包? 如果是用的egg方式, 应该不需要去删除的吧
windows可以用这个,另存为delete_file.js。
linux下根本不用这么费事,一个rm就搞定了。。。
修改要删除的文件后缀名file_end