我正在开发一个与bash' wc'完全相同的python 3项目。 (字数统计)命令。输入格式如下:
$ python3 myWC.py < fileName.txt
我想使用给定的文件来计算文件中的字节,单词和行并打印它们。我尝试过使用stdin,但即使是简单的print()语句也似乎是打印stdin的对象而不是给出的实际字符串。有人可以给我一些关于Python 3中基本stdin可用性的指导吗?谢谢!
如下所述,我正在使用&#39;&gt;&#39;而不是&#39;而不是&#39;但是现在当我运行这段代码时:
import sys
def main():
word = sys.stdin.readline()
print(word)
main()
我只是在终端
中得到一个空行作为输出答案 0 :(得分:4)
扩展我上面的评论,我会说下面的代码可以解决问题(注意:这不是Python 3,而是Python 2.7。一些快速谷歌搜索告诉我它们在这方面相似)。
在echo.py中:
import sys
print sys.stdin.read()
然后在您的终端中呼叫它:
python echo.py < test.txt
这应该回显终端上test.txt的内容。
答案 1 :(得分:0)
How do you read from stdin in Python?
中介绍了如何处理python中的输入您输入的第一行可能为空,您只读一行,请尝试:
import sys
for line in sys.stdio:
print line
另外我应该提一下* nix样式实用程序模块文件输入值得一看。
答案 2 :(得分:0)
与重定向不同的方法:使用fileinput
:
# myWC.py
def main():
for line in fileinput.input():
# Do something with the line
main()
如何调用:
python myWC.py filename.txt # One file
python myWC.py file1.txt file2.txt file3.txt # multiple files
fileinput
负责打开文件的所有细节,为您逐行阅读fileinput.filename()
,fileinput.lineno()
,...