#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2012
    Posts
    2
    Rep Power
    0

    Run linux/unix command order by list of file


    Hi,
    I newbie on python.
    Can we run unix/linux command order by list of file, which the file contains many name of file on some directory ?
  2. #2
  3. Commie Mutant Traitor
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Jun 2004
    Location
    Alpharetta, GA
    Posts
    1,806
    Rep Power
    1570
    If I am following you correctly, then the function you want is system(), which is in the os package.

    Code:
    import os
    
    os.system("ls")
    What this does is call out to the operating system shell and request that it run the other program, then return to the Python program when it is done.

    Now, mind you, there are other ways to do this effectively. You can, for example, use the os.listdir() function, which gives the directory listing as a list of strings. From within a Python program, that one is probably the more useful, since you than can do what you want with that data.
    Rev First Speaker Schol-R-LEA;2 JAM LCF ELF KoR KCO BiWM TGIF
    #define KINSEY (rand() % 7) λ Scheme is the Red Pill
    Scheme in Short Understanding the C/C++ Preprocessor
    Taming Python A Highly Opinionated Review of Programming Languages for the Novice, v1.1

    FOR SALE: One ShapeSystem 2300 CMD, extensively modified for human use. Includes s/w for anthro, transgender, sex-appeal enhance, & Gillian Anderson and Jason D. Poit clone forms. Some wear. $4500 obo. tverres@et.ins.gov
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2012
    Posts
    2
    Rep Power
    0
    Originally Posted by Schol-R-LEA
    If I am following you correctly, then the function you want is system(), which is in the os package.

    Code:
    import os
    
    os.system("ls")
    What this does is call out to the operating system shell and request that it run the other program, then return to the Python program when it is done.

    Now, mind you, there are other ways to do this effectively. You can, for example, use the os.listdir() function, which gives the directory listing as a list of strings. From within a Python program, that one is probably the more useful, since you than can do what you want with that data.
    Hi, thanks for your comment..
    I've made my script python like this

    #!/usr/bin/env python
    import subprocess

    file="/home/ferdi/test_.txt"

    f=open(file,'r')
    for read_test in f :
    data=f.readline()
    test=subprocess.call("cd /home/ferdi/another;ls -l " + data,shell=True)
    print test

    which file contains
    1.gif
    2.gif
    3.gif
    4.gif

    I want my result is like this :

    -rwxrwxrwx. 1 ferdi ferdi 2985 Oct 31 02:09 1.gif
    -rwxrwxrwx. 1 ferdi ferdi 2085 Oct 31 02:09 2.gif
    -rwxrwxrwx. 1 ferdi ferdi 2185 Oct 31 02:09 3.gif
    -rwxrwxrwx. 1 ferdi ferdi 2285 Oct 31 02:09 4.gif

    Still error..
    How to use this on python... ? Can you help me ?
  6. #4
  7. Commie Mutant Traitor
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Jun 2004
    Location
    Alpharetta, GA
    Posts
    1,806
    Rep Power
    1570
    First off, I should mention that the forum software does not retain indentation by default. In order to make your code readable, you need to put it in [code] tags, as I have here below:
    Code:
    #!/usr/bin/env python
    import subprocess
    
    file="/home/ferdi/test_.txt"
    
    f=open(file,'r')
    for read_test in f :
            data=f.readline()
            test=subprocess.call("cd /home/ferdi/another;ls -l " + data,shell=True)
            print test
    As for changing the working directory, you might be better off using os.chdir("/home/ferdi/another"), before beginning the for: loop. You would then use subprocess.Popen() rather than subprocess.call(), and you would follow it immediately with a call to communicate().
    Code:
    import subprocess
    import os
    
    def listing():
        ls = subprocess.Popen("ls -l", stdout=subprocess.PIPE)
        return ls.communicate()[0]
    
    ls = listing().decode()
    print (ls)
    
    lines = ls.split(os.linesep)
    
    for line in lines:
        print(line)
    Rev First Speaker Schol-R-LEA;2 JAM LCF ELF KoR KCO BiWM TGIF
    #define KINSEY (rand() % 7) λ Scheme is the Red Pill
    Scheme in Short Understanding the C/C++ Preprocessor
    Taming Python A Highly Opinionated Review of Programming Languages for the Novice, v1.1

    FOR SALE: One ShapeSystem 2300 CMD, extensively modified for human use. Includes s/w for anthro, transgender, sex-appeal enhance, & Gillian Anderson and Jason D. Poit clone forms. Some wear. $4500 obo. tverres@et.ins.gov

IMN logo majestic logo threadwatch logo seochat tools logo