替换python脚本中的字符串并执行脚本
我有一个将CSV文件合并在一起的Python脚本。在执行脚本之前,我想替换文件中的a字符串。我可以使用这个sed命令来实现这一点-替换python脚本中的字符串并执行脚本,python,sed,Python,Sed,我有一个将CSV文件合并在一起的Python脚本。在执行脚本之前,我想替换文件中的a字符串。我可以使用这个sed命令来实现这一点- sed的/state/MI/'my_script.py 如何将其传递给Python执行?到目前为止,我已经尝试了下面的方法- python“$(sed's/state\u name/MI/'my\u script.py)” 这不起作用,但当我用PSQL做同样的尝试时,它确实起作用了- psql-ddb-c“$(sed's/state_name/MI/'summary
sed的/state/MI/'my_script.py
如何将其传递给Python执行?到目前为止,我已经尝试了下面的方法-
python“$(sed's/state\u name/MI/'my\u script.py)”
这不起作用,但当我用PSQL做同样的尝试时,它确实起作用了-
psql-ddb-c“$(sed's/state_name/MI/'summary.sql)”
您听起来好像知道如何使用命令行参数,但只是为了完整起见,对于那些将来阅读此问题并且不确定如何在python中使用命令行参数的人:
在代码中接收命令行参数的一种简单快捷的方法是使用sys
模块的argv
属性,该模块是一个包含发送到脚本的所有参数的列表。调用python文件时,sys.argv
捕获的第一个参数是脚本本身的名称。随后将捕获任何命令行参数:
import sys
arguments = sys.argv
# make sure user really sent an argument, or else set it to some default value
if len(arguments)>1:
desired_string = arguments[1]
else:
desired_string = "Some_default_value"
听起来您好像知道如何使用命令行参数,但只是为了完整起见,对于那些将来阅读此问题并且不确定如何在python中使用命令行参数的人: 在代码中接收命令行参数的一种简单快捷的方法是使用
sys
模块的argv
属性,该模块是一个包含发送到脚本的所有参数的列表。调用python文件时,sys.argv
捕获的第一个参数是脚本本身的名称。随后将捕获任何命令行参数:
import sys
arguments = sys.argv
# make sure user really sent an argument, or else set it to some default value
if len(arguments)>1:
desired_string = arguments[1]
else:
desired_string = "Some_default_value"
您可以使用调用命令行程序
导入子流程
def func():
将subprocess.Popen(['sed','s/state/MI/','my_script.py',stdout=subprocess.PIPE)作为进程:
stdout,stderr=process.communicate()
打印(标准输出)
您可以使用
导入子流程
def func():
将subprocess.Popen(['sed','s/state/MI/','my_script.py',stdout=subprocess.PIPE)作为进程:
stdout,stderr=process.communicate()
打印(标准输出)
是否无法将所需字符串作为参数发送到python文件?或者出于某种原因,您正在积极尝试避免使用命令行参数吗?在IDE中打开.py文件并进行替换不是更简单吗?也就是说,如果需要的话,最好重构脚本(例如,获取CLI参数)frequently@VincePayandeh非常感谢。我将使用命令行参数。是否无法将所需字符串作为参数发送到python文件?或者出于某种原因,您正在积极尝试避免使用命令行参数吗?在IDE中打开.py文件并进行替换不是更简单吗?也就是说,如果需要的话,最好重构脚本(例如,获取CLI参数)frequently@VincePayandeh非常感谢。我将使用命令行参数