Reading/writing Files In Python
I am trying to create a new text file of stock symbols in the russell 2k from one that looks like this: All I want is the ticker symbol at the end of each line. So I have the foll
Solution 1:
The filemode "w"
creates a new empty file in each step. Either use mode "a"
for append, or move the file opening outside the loop.
withopen("russ.txt", "r") as f:
for line in f:
line = line.split()
line = line[-1]
if line == "Ticker": continueprint line
withopen("output.txt", "a") as fh:
fh.write(line + "\n")
or better, open the file only once:
withopen("russ.txt", "r") as f, open("output.txt", "w") as fh:
for line in f:
symbol = line.split()[-1]
if symbol != "Ticker":
print symbol
fh.write(symbol + "\n")
Solution 2:
I believe using fileinput
will be also handy in your case:
import fileinput
import sys
for line in fileinput.input("russ.txt", inplace=1):
sys.stdout.write(line.split(' ')[-1])
fileinput.input
will change original file.
Solution 3:
You're overwriting the file each time you open it. Move the with
line outside of the for
block, and seek to the end before writing (or open in append mode).
Solution 4:
You can read the file into a list and then use the .split()
method to split it along the spaces. Since the ticekr is the last element of the list. You can get it via negative indexing.
f = [line.strip() for line in open('so.txt')]
for i in f:
print i.split(' ')[-1]
Input file:
STARK INDUSTRIES ST
STARK INDUSTRIES ST
STARK INDUSTRIES ST
STARK INDUSTRIES ST
STARK INDUSTRIES ST
Output:
ST
ST
ST
ST
ST
Post a Comment for "Reading/writing Files In Python"