Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换python脚本中的字符串并执行脚本_Python_Sed - Fatal编程技术网

替换python脚本中的字符串并执行脚本

替换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

我有一个将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.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非常感谢。我将使用命令行参数