Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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
使用argparse和multiprocessor使用python以编程方式创建三个文件_Python_Python 3.x - Fatal编程技术网

使用argparse和multiprocessor使用python以编程方式创建三个文件

使用argparse和multiprocessor使用python以编程方式创建三个文件,python,python-3.x,Python,Python 3.x,我的目标是使用以下代码输出名为file_1.pyfile_2.pyfile_3.py的3个文件 问题 但是,当我使用100和3作为参数调用generate_file(100,1)函数时,我收到以下错误: 错误:需要以下参数:num\u文件、num\u行 随机导入 导入argparse 导入多处理 #函数生成具有指定行数的文件 def生成文件(行数,文件编号): ''' 函数生成具有指定行数的文件,每行有3个随机数 ''' filename=“file_u”+str(文件编号)+“.txt” #打

我的目标是使用以下代码输出名为
file_1.py
file_2.py
file_3.py
的3个文件

问题 但是,当我使用
100
3
作为参数调用
generate_file(100,1)
函数时,我收到以下错误

错误:需要以下参数:num\u文件、num\u行

随机导入
导入argparse
导入多处理
#函数生成具有指定行数的文件
def生成文件(行数,文件编号):
'''
函数生成具有指定行数的文件,每行有3个随机数
'''
filename=“file_u”+str(文件编号)+“.txt”
#打开写入和输出行
文件=打开(文件名为“w”)
对于范围内的i(num_行):
line=str(random.randint(0,10))+“”+str(random.randint(0,10))+“”+str(random.randint(0,10))
file.write(第+“\n”行)
file.close()文件
打印(文件名+“已写入!”)
然后,我使用此代码以编程方式生成三个单独的文件:

def parse_arguments():
'''
参数分析器
num_files=文件数
num_lines=行数
'''
parser=argparse.ArgumentParser(description='Set the number of files and number of lines')
parser.add_参数(“num_files”,type=int,help=“要创建的文件数”)
add_参数(“num_行”,type=int,help=“每个文件的行数”)
args=parser.parse_args()
返回(args)
def main():
'''
从func获取参数,设置多处理,创建文件
'''
arguments=parse_arguments()
num\u files=arguments.num\u files
num\u行=arguments.num\u行
打印(“程序参数:num_文件=“+str(num_文件)+;”num_行=“+str(num_行))
工作=[]
对于范围内的文件编号(num文件):
t=multiprocessing.Process(目标=generate_file,args=(num_行,文件编号))
jobs.append(t)
t、 start()#此时启动新的子进程,它有自己的执行流
对于作业中的当前作业:#等待所有进程完成
curr_job.join()
打印(“程序完成正常”)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
然后我调用函数:

调用函数 生成_文件(100,3)
如果uuuu name\uuuuuu=='\uuuuuuu main\uuuu'guard,则需要使用
调用通过多处理生成的进程。有关详细信息,请参见此处:。检查标记的部分

主模块的安全导入


如何执行这个python脚本?我试着在命令行中运行您的脚本,它正确地解析了参数:例如“python file.py 100 3”@Imeninato我正在调用文件中的函数,例如“generate_file(100,3)”。您能解释一下,当您通过终端执行时,如何/为什么向文件提供参数吗?换句话说,我完全不理解这段代码。一个简短的解释会非常有用!谢谢谢谢你!非常有帮助!