在Linux中将文件作为参数传递

iGw*_*wok 0 python linux

我有一个python脚本,它通过sys.argv将文件作为参数.

在Linux中将此文件作为参数传递的最佳方法是什么?

我已经尝试在我的python脚本的第一行添加这行代码,认为这将使我能够将文件拖放到它上,但这似乎不起作用.

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?干杯

Ste*_*enH 5

这是一个非常基本的例子,它接受第一个参数(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系统

至于完成拖放操作,您总是可以将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链接