比方说,我有一个 Shell 脚本,run.sh它从键盘读取用户输入,然后执行一些特定任务。出于某些技术原因,我将此脚本迁移到 Python,例如run.py,以实现完全相同的目标。
在文件中run.sh,我要求用户输入一个输入,该输入通常是文件系统中的一个文件,因此我给出了“制表符完成”它的选项,并且我只需通过以下行即可实现它:
read -e -p "Choose a file: " file
该-e标志完成制表符完成用户输入的工作。例如,如果用户的当前目录是project,则其结构如下:
project
-- src
-- shared
-- lib
-- imgs
-- image.png
-- include
-- README.txt
Run Code Online (Sandbox Code Playgroud)
输入文件是image.png他们可以按如下方式进行:
sh<tab>i<tab><tab>
结果是shared/imgs/image.png.
现在我如何在 Python 脚本中实现它?您可能认为有大量相关问题,但我无法在 中重现完全相同的结果run.py。
到目前为止我已经尝试过:
1.Python的os模块:
project
-- src
-- shared
-- lib
-- imgs
-- image.png
-- include
-- README.txt
Run Code Online (Sandbox Code Playgroud)
输出:sh: 1: read: Illegal option -e
2.Python的subprocess …
我正在开发一个电子商务应用程序,它使用 laravel 的身份验证。它给了我所有的登录/注册/重置密码逻辑和视图。登录和注册工作正常,但重置视图给我带来了一些错误。重置视图:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Reset password</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
<form class="form-horizontal" role="form" method="POST" action="{{ route('password.request') }}">
{{ csrf_field() }}
<input type="hidden" name="token" value="{{ $token }}">
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-mail</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ $email or old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong> …Run Code Online (Sandbox Code Playgroud)