KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm running into a problem that I haven't seen anyone on StackOverflow encounter or even google for that matter. My main goal is to be able to replace occurences of a string in the file with another string. Is there a way there a way to be able to acess all of the lines in the file. The problem is that when I try to read in a large text file (1-2 gb) of text, python only reads a subset of it. For example, I'll do a really simply command such as: newfile = open("newfile.txt","w") f = open("filename.txt","r") for line in f: replaced = line.replace("string1", "string2") newfile.write(replaced) And it only writes the first 382 mb of the original file. Has anyone encountered this problem previously? I tried a few different solutions such as using: import fileinput for i, line in enumerate(fileinput.input("filename.txt", inplace=1) sys.stdout.write(line.replace("string1", "string2") But it has the same effect. Nor does reading the file in chunks such as using f.read(10000) I've narrowed it down to mostly likely being a reading in problem and not a writing problem because it happens for simply printing out lines. I know that there are more lines. When I open it in a full text editor such as Vim, I can see what the last line should be, and it is not the last line that python prints. Can anyone offer any advice or things to try? I'm currently using a 32-bit version of Windows XP with 3.25 gb of ram, and running Python 2.7
Tags (comma-separated)
Save Edits
Cancel