user2202911
user2202911

Reputation: 3014

Not writing to file, even with f.close()

Edited my program - still having same issue

Also, the linked answer that was recommened is useless as it only tells you that you cannot modify a file in place and does not offer any good solution. I have a file that has line numbers at the start of it. I wrote a python script to eliminate these line numbers. This is my second attempt at it and I am still having the same issues

First I open the file and save it to a variable to reuse later:

#Open for reading and save the file information to text
fin = open('test.txt','r')
text = fin.read()
fin.close 

#Make modifications and write to new file
fout = open('test_new.txt','w') 
for line in text: 
    whitespaceloc = line.find(' ') 
    newline = line[whitespaceloc:] 
    fout.write(newline) 

fout.close()

I have also tried using the 'with' keyword with no luck, When I open test_new.txt it is empty

What is going on here?

Upvotes: 0

Views: 1072

Answers (1)

Aleksander Lidtke
Aleksander Lidtke

Reputation: 2926

My advice on how to do this would be:

1) Read the file to a buffer:

 with open('file.txt','r') as myfile:
      lines=myfile.readlines()

2) Now close and overwrite the same file with any changes you want to do just as you did before:

 with open('file.txt','w') as myfile:
      for line in lines: 
         whitespaceloc = line.find(' ') 
         newline = line[whitespaceloc:] 
         myfile.write("%s" %newline) 

Upvotes: 3

Related Questions