【问题标题】:How to open files given as command line arguments in python? [closed]如何在python中打开作为命令行参数给出的文件? [关闭]
【发布时间】:2012-01-06 23:48:03
【问题描述】:

我希望我的 .py 文件接受我在命令行中输入的文件。我使用了 sys.argv[] 和 fileinput,但我没有得到输出。

【问题讨论】:

  • 你的问题不清楚。目前还不清楚你的目标是什么,你期望什么输出,你尝试了什么以及它是如何失败的。与其说“我使用了sys.argv[]fileinput”,不如展示你的实际代码。与其说“我没有得到输出”,不如展示你得到的输出和你期望的输出。
  • 任务是我需要检查包含字符串的给定文件是否是有效的电子邮件地址。例如:如果有四行,我需要检查每一行是否是有效的电子邮件地址。但是我能够检查到。我得到了作为输入提供的文件所需的输出。我正在尝试对其进行修改以接受作为特定 .py 文件的命令行参数给出的任何文件,以便它将获取该文件并检查该文件是否具有有效的电子邮件地址。
  • 我在我的虚拟机(ubuntu)上做这个程序,所以我不能把它复制粘贴到我的windows机器上。
  • sys.argvfileinput 都是解决此问题的可能方法。我们无法指出您在使用它们时的错误,因为您没有告诉我们您尝试了什么。 (通常,最好编辑您的原始问题以澄清它。)
  • @SvenMarnach import re def emailValidate(): emailPattern = re.compile("^[a-zA-Z0-9._%-+]+@[a-zA-Z0-9._%-]+.[]a-zA-Z]{2,6}$") f = file(sys.argv[1], 'r') lines = f.readlines()

标签: python command sys


【解决方案1】:

如果你会写下面的脚本:

#!/usr/bin/env python

import sys

with open(sys.argv[1], 'r') as my_file:
    print(my_file.read())

并运行它,它将显示文件的内容,您在第一个参数中传递其名称,如下所示:

./my_script.py test.txt

(在上面的例子中这个文件是test.txt)。

【讨论】:

  • @Tadeck - 嘿,它奏效了。 :D 谢谢 :)
  • @Ram:我很高兴它有帮助。您还有其他问题吗?
  • 没有,我实际上已经提交了输出并且得到了满分!谢谢 :) 我用sys.arg 做到了,但我遇到了错误,所以不知道我在做什么错误。阅读您的帖子后,我了解到sys.argv 接受命令行参数作为数组,这就是我们使用索引的原因。
  • 这是否也适用于不同目录中的文件?
猜你喜欢
  • 2011-02-01
  • 2018-03-20
  • 2013-05-18
  • 2019-02-27
  • 2018-11-08
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
相关资源
最近更新 更多