flybonzai
flybonzai

Reputation: 3931

Using Subprocess module to capture file names?

I'm trying to read in a list of account numbers, then have my program do a search in the appropriate directory for each account number. I want to capture the information from this search, to then split out the file name, date, and time as the output from my program. Currently I'm receiving this error: TypeError: bufsize must be an integer

Here is my code:

def app_files(level):
    piv_list_file = raw_input(r"Please enter the full path of the file containing the Pivot ID's you would like to check: ")
    piv_id_list = []
    proc_out_list = []
    input_dir = ''

    try:
        with open(piv_list_file, 'rbU') as infile:
            for line in infile:
                line = line.rstrip('\r\n')
                piv_id_list.append(line)
    except IOError as e:
        print 'Unable to open the account number file: %s' % e.strerror

    if level == 'p':
        input_dir = '[redacted]'
    else:
        input_dir = '[redacted]'    

    subprocess.call('cd', input_dir)
    for i, e in enumerate(piv_id_list):
        proc_out = subprocess.check_output('ls', '-lh', '*CSV*APP*{0}.zip'.format(e))
        proc_out_list.append(proc_out)
        print(proc_out)

Upvotes: 0

Views: 50

Answers (1)

Anand S Kumar
Anand S Kumar

Reputation: 90899

Your subprocess.check_output() function call is wrong. You should provide the complete command as a list (as the first argument). Example -

subprocess.check_output(['ls', '-lh', '*CSV*APP*{0}.zip'.format(e)])

Similar issue with subprocess.call in your code .

Upvotes: 1

Related Questions