Change in Python 3.3 with the treatment of sys.argv

Peter Otten __peter__ at web.de
Fri Mar 22 18:33:13 EDT 2013


Colin J. Williams wrote:

> Below is an extract from some code to run on Python 2.7.3, 3.2.3 and
> 3.3.0 to compare speeds, both between versions and machines:
> 
> if __name__ == '__main__':
>      # Text string for initial test - Modify for your own machine or
>      # delete it and and answer the input statement with your own machine
>      # characteristics.
>      sys.argv[1:]= ('Intel Pentium D CPU 3.0GHz 1.99 GB of RAM 221GB
> Disk Free space', )
>      main()
> 
> 
> def main():
>      if len(sys.argv) > 1:
>          idMachine= ' '.join(sys.argv[1:])
>      ...
>      oFile= open('FP' + now + '.log', 'w')
>      oFile.writelines(idM + '\n' + sys.version + '\n')
> 
> For 2.7, the result is:
> Intel_Pentium_D_CPU_3.0GHz_1.99_GB_of_RAM_221GB_Disk_Free_space
> 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]
> 
> for 3.2, the result is:
> Intel_Pentium_D_CPU_3.0GHz_1.99_GB_of_RAM_221GB_Disk_Free_space
> 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)]
> 
> For 3.3, the result is:
> 
I_n_t_e_l___P_e_n_t_i_u_m___D___C_P_U___3_._0_G_H_z___1_._9_9___G_B___o_f___R_A_M___2_2_1_G_B___D_i_s_k___F_r_e_e___s_p_a_c_e
> 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 bit
> (Intel)]
> 
> The full test result, for random matrices of increasing order is
> available
> here(http://web.ncf.ca/cjw/FP%20Summary%20over%20273-323-330.txt)

You may have run Python 3.3 with a slightly different script, one where you 
forgot a trailing comma:

>>> argv = ["foo"]
>>> argv[1:] = ("bar",) # with comma
>>> print("-".join(argv[1:]))
bar
>>> argv = ["foo"]
>>> argv[1:] = ("bar") # without comma
>>> print("-".join(argv[1:]))
b-a-r





More information about the Python-list mailing list