Sorry for this very basic question. I am new to Python and trying to write a script which can print the URL links. The IP addresses are stored in a file named list.txt. How should I use the variable in the link? Could you please help?
# cat list.txt192.168.0.1
192.168.0.2
192.168.0.9
script:
import sys
import osfile = open('/home/list.txt', 'r')for line in file.readlines():source = line.strip('\n')print sourcelink = "https://(source)/result”
print link
output:
192.168.0.1
192.168.0.2
192.168.0.9
https://(source)/result
Expected output:
192.168.0.1
192.168.0.2
192.168.0.9
https://192.168.0.1/result
https://192.168.0.2/result
https://192.168.0.9/result
You need to pass the actual variable, you can iterate over the file object so you don't need to use readlines and use with
to open your files as it will close them automatically. You also need the print inside the loop if you want to see each line and str.rstrip()
will remove any newlines from the end of each line:
with open('/home/list.txt') as f: for ip in f:print "https://{0}/result".format(ip.rstrip())
If you want to store all the links use a list comprehension:
with open('/home/list.txt' as f:links = ["https://{0}/result".format(ip.rstrip()) for line in f]
For python 2.6 you have to pass the numeric index of a positional argument, i.e {0}
using str.format .
You can also use names to pass to str.format:
with open('/home/list.txt') as f:for ip in f:print "https://{ip}/result".format(ip=ip.rstrip())