The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.
|
 |
|
Dev Shed Forums
> Programming Languages
> Python Programming
|
Run linux/unix command order by list of file
Discuss Run linux/unix command order by list of file in the Python Programming forum on Dev Shed. Run linux/unix command order by list of file Python Programming forum discussing coding techniques, tips and tricks, and Zope related information. Python was designed from the ground up to be a completely object-oriented programming language.
|
|
 |
|
|
|
|

Dev Shed Forums Sponsor:
|
|
|

November 5th, 2012, 04:03 AM
|
|
Registered User
|
|
Join Date: Nov 2012
Posts: 2
Time spent in forums: 19 m 3 sec
Reputation 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 ?
|

November 5th, 2012, 06:26 AM
|
 |
Commie Mutant Traitor
|
|
Join Date: Jun 2004
Location: Norcross, GA (again)
|
|
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.
|

November 5th, 2012, 08:25 PM
|
|
Registered User
|
|
Join Date: Nov 2012
Posts: 2
Time spent in forums: 19 m 3 sec
Reputation Power: 0
|
|
Quote: | 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 ?
|

November 6th, 2012, 02:18 AM
|
 |
Commie Mutant Traitor
|
|
Join Date: Jun 2004
Location: Norcross, GA (again)
|
|
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)
|
Developer Shed Advertisers and Affiliates
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Rate This Thread |
Linear Mode
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|