热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3。x调用函数与sys.argv[]-Python3.xcallfunctionwithsys.argv[]

Ihaveafunctionthatprocessesfilecontents,butrightnowIhavethefilenamehardcodedinthef

I have a function that processes file contents, but right now I have the filename hardcoded in the function like this as a keyword argument:

我有一个处理文件内容的函数,但是现在我把文件名硬编码在这个函数中,就像一个关键字参数:

def myFirstFunc(filename = open('myNotes.txt', 'r')): 
    pass
#and I call it like this:

myFirstFunc()

I would like to treat the argument as a filename, and process the contents.

我想把这个参数当作文件名,并处理内容。

  1. how do i modify the statement above-I tried this: filename= sys.argv[1]# or is it 0?
  2. 我如何修改上面的语句:filename= sys。argv[1]#还是0?
  3. how do I call it?
  4. 我怎么称呼它?

Please help with basic Python (Just learning)

请帮助使用基本的Python(学习)

Thanks

谢谢

3 个解决方案

#1


7  

something like this:

是这样的:

#!/usr/bin/python3

import sys


def myFirstFunction():
    return open(sys.argv[1], 'r')

openFile = myFirstFunction()

for line in openFile:
    print (line.strip()) #remove '\n'? if not remove .strip()
    #do other stuff

openFile.close() #don't forget to close open file

then I would call it like the following:

然后我将其命名为:

./readFile.py temp.txt

/ readFile。py temp.txt

which would output the contents of temp.txt

它将输出temp.txt的内容?

sys.argv[0] outputs the name of script. In this case ./readFile.py

sys。argv[0]输出脚本的名称。在这种情况下。/ readFile.py

Updating My Answer
because it seems others want a try approach

更新我的答案,因为其他人似乎想尝试一下。

How do I check whether a file exists using Python? is a good question on this subject of how to check if a file exists. There appears to be a disagreement on which method to use, but using the accepted version it would be as followed:

如何检查是否存在使用Python的文件?这是一个关于如何检查文件是否存在的好问题。在使用哪种方法上似乎存在分歧,但使用公认的版本将会是:

 #!/usr/bin/python3

import sys


def myFirstFunction():
    try:
        inputFile = open(sys.argv[1], 'r')
        return inputFile
    except Exception as e:
        print('Oh No! => %s' %e)
        sys.exit(2) #Unix programs generally use 2 for 
                    #command line syntax errors
                    # and 1 for all other kind of errors.


openFile = myFirstFunction()

for line in openFile:
    print (line.strip())
    #do other stuff
openFile.close()

which would output the following:

它将输出以下内容:

$ ./readFile.py badFile
Oh No! => [Errno 2] No such file or directory: 'badFile'

you could probably do this with an if statement, but I like this comment on EAFP VS LBYL

你可以用if语句来做这个,但是我喜欢这个关于EAFP和LBYL的评论。

#2


2  

For Python 3 you can use the context manager.

对于Python 3,您可以使用上下文管理器。

# argv[0] is always the name of the program itself.
try:
    filename = sys.argv[1]
except IndexError:
    print "You must supply a file name."
    sys.exit(2)

def do_something_with_file(filename):    
    with open(filename, "r") as fileobject:
        for line in fileobject:
            do_something_with(line)

do_something_with_file(filename)

#3


2  

This is more than you asked for, but here's a common idiom I use for using command line arguments:

这比您所要求的要多,但这里有一个常用的习惯用法,用于使用命令行参数:

def do_something_with_file(filename):    
    with open(filename, "r") as fileobject:
        for line in fileobject:
            pass    # Replace with something useful with line.

def main(args):
    'Execute command line options.'
    try:
        src_name = args[0]
    except IndexError:
        raise SystemExit('A filename is required.')

    do_something_with_file(src_name)


# The following three lines of boilerplate are identical in all my command-line scripts.
if __name__ == '__main__':
    import sys
    main(sys.argv[1:])  # Execute 'main' with all the command line arguments (excluding sys.argv[0], the program name).

推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
author-avatar
佩菱淑华7
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有