我是python的新手。作为我项目的一部分,我正在尝试为python文件创建一个linux命令。例如,我有一个python文件example.py,
with open('file.txt','r') as f:
for i in f:
print i
with open('file.txt','r') as f: #for different reasons I am opening file again
for i in f:
print i
我在这里尝试制作像$example --print file.txt
这样的命令。
这意味着我从命令本身提供输入文件。然后它必须打印输入文件的内容。
请帮我解决这个问题。
提前谢谢。
答案 0 :(得分:2)
您需要将解释器添加到脚本的头部,并使用sys.env
来访问输入参数:
#!/usr/bin/python
import sys, os;
# check so we have enough arguments
if len(sys.argv) < 2:
printf "You need to supply at least two arguments."
exit(-1)
# check so the file exists
if os.path.exists(sys.argv[1]):
# try to open the filename supplied in the second argument
# the sys.argv[0] always points to the name of the script
with open(sys.argv[1], 'r') as f:
for i in f:
print i
else:
print 'The file %s does not exists' %(sys.argv[1])
请注意,您可能需要将/usr/bin/python
更改为安装python二进制文件的路径。您可以通过发出以下命令找到它的位置:
whereis python
现在您应该可以像这样运行命令:
./command file.txt
您需要做的最后一件事是确保脚本是可执行的:
chmod +x command
答案 1 :(得分:0)
您需要以下内容:
#!/usr/bin/env python
sys.argv
是包含命令行参数的列表