RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-361109

Keymaster's questions

Martin Hope
Keymaster
Asked: 2020-01-14 04:40:52 +0000 UTC

如何正确写入函数的工作文件?

  • 0

业余时间,为了学习python,我用python写了一个DOS命令行模拟器。问题是如何正确实现 DOS 命令实用程序>文件的模拟。将工作结果保存到文件中。示例dir>1.txt变体os.system('dir>1.txt')当然很简单。但我不是为了让事情变得容易而变态。我希望 python 写入文件。到目前为止,所有这些都由一个主脚本组成,该脚本包含一个用于输入命令的永恒循环,以及一个模块,该模块具有主要根据输入的命令拉取的功能。这是主要的:

import utils
import os
import re


functions = {'tree': utils.tree, #словарь релизованных функций
             'quit': utils.quit, 'exit': utils.quit, 'x': utils.quit,
             'dir': utils.dir, 'ls': utils.dir,
             'cd': utils.cd, 'chdir':utils.cd,
             'help': utils.help, '?': utils.help,
             'cls':utils.cls
             }

while True:
    input_string = input(os.getcwd() + '>').lower() # читаем ввод
    cli = re.split(r'([a-z]+)(.*)', input_string)   # режем на функцию и аргумент
    cli.extend(' '' ')
    function_name = cli[1]
    argument = cli[2]
    if function_name in functions and argument == '/?': # если /? печатаем докум.
        print(functions[function_name].__doc__)
    elif function_name in functions:
        functions[function_name]((argument).strip()) # если функция в словаре - вызываем
        print('\n')
    elif function_name != ' ' or not function_name.isalpha(): 
        print(function_name + argument, """ не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.""")

这是 utils.py 中的示例函数

from pathlib import Path
import sys
import os
import datetime
import re

def cd(argument):
    r"""Вывод имени либо смена текущего каталога.
Здесь вырезано куча текста из справки

"""
    if len(argument) > 0:
        command = re.split(r'[ ]', argument, maxsplit=1)
        if len(command) > 1 and command[0] == '/d':
                path = command[1]
        else:
            path = argument
        if not os.path.isdir(path):
            print('Системе не удается найти указанный путь.')
        else:
            accert: os.path.isdir(path)
            os.chdir(path)
    elif argument == '':
            print(os.getcwd())

如果函数参数是/?,我想让它像显示帮助一样简单。或者是否有必要以某种方式重写函数,以便它们不打印结果,而是返回字符串列表,然后根据命令将其打印到控制台或写入文件?我要求钢琴家不要开枪,他尽可能地弹奏。我一点经验都没有,写这个没用的东西就是为了得到它。

python
  • 1 个回答
  • 10 Views
Martin Hope
Keymaster
Asked: 2020-01-06 10:17:51 +0000 UTC

如何读取 DOS 命令行使用 help > help.txt 方法创建的文件

  • 0

Python 在俄语 DOS 中读取/写入文件时读取和写入文件时读取错误并打印错误。编辑器可以轻松解决此问题。

但是如何在脚本本身中做到这一点?

os.system('chcp 65001')在保存到文件之前会有所帮助,但并非总是如此。在我看来,这是一种奇怪的方式。

python
  • 1 个回答
  • 10 Views
Martin Hope
Keymaster
Asked: 2020-01-04 08:21:30 +0000 UTC

目录树绘制算法

  • 8

我试图在 python 中编写 DOS 树实用程序的类似物。这是绘制目录树的那个。像这样:

在此处输入图像描述

我所能达到的就是:

在此处输入图像描述

如您所见,一些标记为红色的路径我不知道如何绘制。或者更确切地说,有一些想法,甚至有些事情已经解决了,但是剧本里有这么多垃圾,我自己几乎无法理解它是如何运作的。在我看来,我最初错误地接近了问题的解决方案。因此,我请求聪明人的帮助。我知道 os.system('tree')。但意义不在于结果,而在于过程。

import os


def tree(my_path='.'):

    print(my_path)
    for path, dirs, files in os.walk(my_path):
        deep = path.replace(my_path, '').count(os.sep)
        space = '   ' * (deep - 1)
        if deep == 1:
            print('{}|__{}'.format(space, os.path.basename(path)))
        elif deep > 1:
            print('|{}|__{}'.format(space, os.path.basename(path)))


tree()
python
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5