我正在用Python语言编写一个聊天程序,它需要连接到服务器,然后才能接受来自sys.stdin的用户输入。如果无法建立连接,则程序退出。
从shell运行此命令,如果连接失败,并且在尝试连接时发送了输入,则在程序退出后,输入将回显到shell:
jtink@gab-dec:~$ python chat.py
attempting to connect...
Hey there! # This is user input
How are you? # This is more user input
connection failed
jtink@gab-dec:~$ H
我编写了很多逐行处理文件的小脚本。在Perl中,我使用
while (<>) {
do stuff;
}
这很方便,因为它不关心输入来自哪里(文件或标准输入)。
在Python中,我使用以下代码
if len(sys.argv) == 2: # there's a command line argument
sys.stdin = file(sys.argv[1])
for line in sys.stdin.readlines():
do stuff
看起来不是很优雅。有没有一种Python习惯用法可以轻松处理file/stdin输入?
我想围绕python代码编写一个.bat包装器,它可以处理参数和管道输入。参数不是问题,但我一尝试输入,就失去了使用raw_input查询用户和/或导致EOFError的能力。下面是一个例子,让我们称之为test.bat。我可以更改下面的脚本来处理管道输入和参数输入吗?
编辑感谢Harry的伟大建议,请参阅下面的代码以获得用户输入管道和参数的可靠方法!
@echo off
rem = """
setlocal enableextensions
set PYTHON="C:/Python27/python.exe"
%PYTHON% -x "%~f
当我在Mac上输入我的Downloads目录(10.9.5)时,我从我的终端输入Python并尝试使用import pandas as pd导入熊猫
name:Downloads name$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for
我在64位Windows 7上运行python 2.7。
下面是我正在执行的代码:
import sys
while True:
print 'please enter a character:'
c = sys.stdin.read(1)
print 'you entered', str(c)
在eclipse的PyDev环境中,输入a和b的输出如下所示。
please enter a character:
a
you entered a
please enter a character:
you entered
please ent
我需要对一个示例代码进行故障排除,但似乎找不到任何错误。
$date = $_POST['date'];
$strcommand = "python3 python.py ".$date.""; //date argument is passed to python
echo $strcommand;
$command = shell_exec($strcommand);
echo $command; //proceeds a lot of calculations and then sends an automatic mail with p
在python中导入urllib或urllib2模块时,我得到了奇怪的输入请求“类型编号1:>”(无论是使用解释器还是从文件中-尽管解释器断断续续地遇到这个问题,但文件是一致的)
$ python testurl.lib
type number 1:>1
type number 2:>2
999
Traceback (most recent call last):
File "testurl.lib", line 1, in <module>
import urllib2
File "/Library/Frameworks/Py
我希望使用管道将数据传递给Python文件,并指定如下所示的输入文件:
cat file.txt|python script.py -u configuration.txt
我现在有这样的情况:
for line in fileinput.input(mode='rU'):
print(line)
我知道sys.argv可以有一些东西,但是也许使用文件输入有一个干净的方法来完成它?
谢谢。
在我的Python程序中,我有可以打开输入文件的行:
f = open('/home/han/fasta.txt',"r")
并编写输出文件:
with open("output.txt", "w") as text_file:
text_file.write ("{:<16}{:<16}{:<16}{:<16}{:<16}".format('','A','C','G','T')+'\n
我用Python编写了以下代码
inputted = input("Enter in something: ")
print("Input is {0}, including the return".format(inputted))
该输出
Enter in something: something
Input is something
, including the return
我不确定发生了什么;如果我使用不依赖于用户输入的变量,则在使用该变量格式化后无法获得换行符。我怀疑当我点击return时,Python可能会接受换行符作为输入。
如何才能使输入不包
我在AppEngine Python3.7标准中启动了新的应用程序。
我正在尝试使用以下代码片段获取凭据,但它失败了。
有谁能在GAE标准Python37中获得credentials?
输入:
from google.auth import app_engine
credentials = app_engine.Credentials()
输出:
The App Engine APIs are not available