我有一个python脚本,它通过sys.argv将文件作为参数.
在Linux中将此文件作为参数传递的最佳方法是什么?
我已经尝试在我的python脚本的第一行添加这行代码,认为这将使我能够将文件拖放到它上,但这似乎不起作用.
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?干杯
这是一个非常基本的例子,它接受第一个参数(sys.argv [1]),我们假设它是一个文件名,打开它,并打印所有行.
import sys
f = open(sys.argv[1])
lines = f.readlines()
for line in lines:
print line
f.close()
Run Code Online (Sandbox Code Playgroud)
您可以通过输入python来调用此文件
<source_file.py> <filename>
Run Code Online (Sandbox Code Playgroud)
如果我的源文件名为readMyFile.py,我想阅读myFile.txt,我会输入
python readMyFile.py myFile.txt
Run Code Online (Sandbox Code Playgroud)
至于完成拖放操作,您总是可以将Python调用放入bash脚本中,然后将参数从bash脚本传递给python脚本.看看这个堆栈溢出线程.从本质上讲,您只需使用此代码制作一个bash脚本.
#!/bin/bash
python <source_file.py> "$1"
Run Code Online (Sandbox Code Playgroud)
或者在我的具体例子中......
#!/bin/bash
python readMyFile.py "$1"
Run Code Online (Sandbox Code Playgroud)
看起来您可能必须在.desktop文件中使用一些代码来配合上述语法.看看这个askubuntu链接