向用户询问文件名,然后将该文件名作为参数传递?

时间:2018-11-28 05:40:40

标签: python user-input filenames

我的任务分配如下:

编写一个将一系列随机数写入文件的函数。每个随机数应在1到500的范围内。应用程序应让用户指定文件将容纳多少个随机数。

编写另一个函数,该函数从文件中读取随机数,显示数字,然后显示以下内容: •从文件中读取的随机数 •总数 •平均值 •生成的最大数字 •生成的最小数字

编写一个执行以下操作的主要功能: •要求用户输入文件名以将随机数写入 •调用将数字写入文件的函数时,将文件名作为参数传递 •调用从文件中读取数字的函数时,将文件名作为参数传递

我的代码如下:

import random
import math
import numpy as np

def main():
    myfile = input("Enter 'filename.txt' here ")
    with open(myfile, 'w+') as f:
        rand_gen()

    return f
    myfile.close

    disp_stats()

def rand_gen():
    for count in range(int(input('How many random numbers should we use?'))
    line = str.random.randint(1,500))
    myfile.write(str.line +'\n'))

def disp_stats():
    myfile = open(f,"r")
    total = 0
    count = 0
    print('The numbers are: ')
    for line in myfile:
        number = int(line)
        total += number
        count +=1
        print(number)

    average = total / count
    data = np.loadtxt(f)
    print('The count is ',count,)
    print('The sum is',total,)
    print('The average is ',format(average, '.2f'))
    print('The minimum value is ',format(np.min(data), '.0f'))
    print('The maximum value is ',format(np.max(data), '.0f'))
    myfile.close

main()

我可以使用rand_gen和disp_stats函数来写入和读取指定文件(例如random.txt)。但是我不知道如何根据用户输入来传递文件名。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

您可以按以下方式将变量作为方法参数传递:

def main():
    // get input from user
    rand_gen(my_file);

def rand_gen(file_name):
    // here you can use the parameter file_name

我建议您看一下一些基本概念,例如参数,变量,变量范围等。

https://www.python-course.eu/passing_arguments.php

答案 1 :(得分:0)

只需从用户那里获取文件名,然后将其传递给函数即可。然后将文件名传递给open()

def main():
    file_name = str(input("Enter file name ")
    rand_gen(file_name)

def rand_gen(file_name):
    my_file = open(file_name, mode='w+')
    # perform operations here
    my_file.close()