gpt4 book ai didi

带有 sys.argv[] 的 Python 3.x 调用函数

转载 作者:太空狗 更新时间:2023-10-29 22:14:08 24 4
gpt4 key购买 nike

我有一个处理文件内容的函数,但现在我在函数中将文件名硬编码为关键字参数:

def myFirstFunc(filename=open('myNotes.txt', 'r')): 
pass

我这样调用它:

myFirstFunc()

我想将参数视为文件名并处理内容。

  1. 如何修改上面的语句?我试过这个:

    filename=sys.argv[1]  # or is it 0?
  2. 如何调用它?

最佳答案

像这样:

#!/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

然后我会这样调用它:

./readFile.py temp.txt

这将输出 temp.txt 的内容

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

更新我的答案
因为其他人似乎想要一种尝试方法

How do I check whether a file exists using 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()

这将输出以下内容:

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

你或许可以用 if 语句来做到这一点,但我喜欢 this评论 EAFP VS LBYL

关于带有 sys.argv[] 的 Python 3.x 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6460541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com