鱼C论坛

 找回密码
 立即注册
查看: 1515|回复: 1

[已解决]请问这份代码在哪里有错误

[复制链接]
发表于 2022-4-15 19:35:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 tommyyu 于 2022-4-15 20:34 编辑

这是一份获取Python源码分别引入了哪些模块的代码,但是结果出来的不对,不知道哪里出错了
from pathlib import Path
ps = Path(r"C:\Users\TOMMY\AppData\Local\Programs\Python\Python310\Lib").iterdir()
all_file = []
for each in ps:
    if '.py' in each.name:
        all_file.append(each.name)

all_import = dict()  #这个字典的键是模块名,值是这个模块所引入的模块
for each in all_file:
    all_import[each] = []
    f = open(r"C:\Users\TOMMY\AppData\Local\Programs\Python\Python310\Lib\"+each, encoding = 'utf-8')
    for i in f.readline():
        if i.lstrip()[:7] == 'import ':
            all_import[each].append(i.lstrip().split(' ')[1])
        if i.lstrip()[:5] == 'from ' and 'import ' in i:
            all_import[each].append(i.lstrip().split(' ')[1])
运行结果:
>>> all_import
{'abc.py': [], 'aifc.py': [], 'antigravity.py': [], 'argparse.py': [], 'ast.py': [], 'asynchat.py': [], 'asyncore.py': [], 'base64.py': [], 'bdb.py': [], 'binhex.py': [], 'bisect.py': [], 'bz2.py': [], 'calendar.py': [], 'cgi.py': [], 'cgitb.py': [], 'chunk.py': [], 'cmd.py': [], 'code.py': [], 'codecs.py': [], 'codeop.py': [], 'colorsys.py': [], 'compileall.py': [], 'configparser.py': [], 'contextlib.py': [], 'contextvars.py': [], 'copy.py': [], 'copyreg.py': [], 'cProfile.py': [], 'crypt.py': [], 'csv.py': [], 'dataclasses.py': [], 'datetime.py': [], 'decimal.py': [], 'difflib.py': [], 'dis.py': [], 'doctest.py': [], 'enum.py': [], 'filecmp.py': [], 'fileinput.py': [], 'fnmatch.py': [], 'fractions.py': [], 'ftplib.py': [], 'functools.py': [], 'genericpath.py': [], 'getopt.py': [], 'getpass.py': [], 'gettext.py': [], 'glob.py': [], 'graphlib.py': [], 'gzip.py': [], 'hashlib.py': [], 'heapq.py': [], 'hmac.py': [], 'imaplib.py': [], 'imghdr.py': [], 'imp.py': [], 'inspect.py': [], 'io.py': [], 'ipaddress.py': [], 'keyword.py': [], 'linecache.py': [], 'locale.py': [], 'lzma.py': [], 'mailbox.py': [], 'mailcap.py': [], 'mimetypes.py': [], 'modulefinder.py': [], 'netrc.py': [], 'nntplib.py': [], 'ntpath.py': [], 'nturl2path.py': [], 'numbers.py': [], 'opcode.py': [], 'operator.py': [], 'optparse.py': [], 'os.py': [], 'pathlib.py': [], 'pdb.py': [], 'pickle.py': [], 'pickletools.py': [], 'pipes.py': [], 'pkgutil.py': [], 'platform.py': [], 'plistlib.py': [], 'poplib.py': [], 'posixpath.py': [], 'pprint.py': [], 'profile.py': [], 'pstats.py': [], 'pty.py': [], 'pyclbr.py': [], 'pydoc.py': [], 'py_compile.py': [], 'queue.py': [], 'quopri.py': [], 'random.py': [], 're.py': [], 'reprlib.py': [], 'rlcompleter.py': [], 'runpy.py': [], 'sched.py': [], 'secrets.py': [], 'selectors.py': [], 'shelve.py': [], 'shlex.py': [], 'shutil.py': [], 'signal.py': [], 'site.py': [], 'smtpd.py': [], 'smtplib.py': [], 'sndhdr.py': [], 'socket.py': [], 'socketserver.py': [], 'sre_compile.py': [], 'sre_constants.py': [], 'sre_parse.py': [], 'ssl.py': [], 'stat.py': [], 'statistics.py': [], 'string.py': [], 'stringprep.py': [], 'struct.py': [], 'subprocess.py': [], 'sunau.py': [], 'symtable.py': [], 'sysconfig.py': [], 'tabnanny.py': [], 'tarfile.py': [], 'telnetlib.py': [], 'tempfile.py': [], 'textwrap.py': [], 'this.py': [], 'threading.py': [], 'timeit.py': [], 'token.py': [], 'tokenize.py': [], 'trace.py': [], 'traceback.py': [], 'tracemalloc.py': [], 'tty.py': [], 'turtle.py': [], 'types.py': [], 'typing.py': [], 'uu.py': [], 'uuid.py': [], 'warnings.py': [], 'wave.py': [], 'weakref.py': [], 'webbrowser.py': [], 'xdrlib.py': [], 'zipapp.py': [], 'zipfile.py': [], 'zipimport.py': [], '_aix_support.py': [], '_bootsubprocess.py': [], '_collections_abc.py': [], '_compat_pickle.py': [], '_compression.py': [], '_markupbase.py': [], '_osx_support.py': [], '_pydecimal.py': [], '_pyio.py': [], '_py_abc.py': [], '_sitebuiltins.py': [], '_strptime.py': [], '_threading_local.py': [], '_weakrefset.py': [], '__future__.py': [], '__phello__.foo.py': []}
>>> 
最佳答案
2022-4-15 19:57:23
from pathlib import Path
ps = Path(r"C:\Users\TOMMY\AppData\Local\Programs\Python\Python310\Lib\site-packages").iterdir()
all_file = []
for each in ps:
    if each.name.endswith('.py'):
        all_file.append(each.name)

all_import = dict()  #这个字典的键是模块名,值是这个模块所引入的模块
for each in all_file:
    all_import[each] = []
    f = open(r"C:\Users\TOMMY\AppData\Local\Programs\Python\Python310\Lib\site-packages" "\"+each, encoding = 'utf-8')
    for i in f:                                 # 把 f.readlines() 改成 f
        if i.lstrip()[:7] == 'import ':
            all_import[each].append(i.strip().split(' ')[1])
        if i.lstrip()[:5] == 'from ' and 'import ' in i:
            all_import[each].append(i.strip().split(' ')[1])
print(all_import)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-15 19:57:23 | 显示全部楼层    本楼为最佳答案   
from pathlib import Path
ps = Path(r"C:\Users\TOMMY\AppData\Local\Programs\Python\Python310\Lib\site-packages").iterdir()
all_file = []
for each in ps:
    if each.name.endswith('.py'):
        all_file.append(each.name)

all_import = dict()  #这个字典的键是模块名,值是这个模块所引入的模块
for each in all_file:
    all_import[each] = []
    f = open(r"C:\Users\TOMMY\AppData\Local\Programs\Python\Python310\Lib\site-packages" "\"+each, encoding = 'utf-8')
    for i in f:                                 # 把 f.readlines() 改成 f
        if i.lstrip()[:7] == 'import ':
            all_import[each].append(i.strip().split(' ')[1])
        if i.lstrip()[:5] == 'from ' and 'import ' in i:
            all_import[each].append(i.strip().split(' ')[1])
print(all_import)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 17:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表