This seemed like the last really one-sided war between European powers. In fact, it seems like one of the last major really one-sided wars that wasn't a colonial war. (Some people might say Persian Gulf/Iraq but the problem there isn't winning the war. It's keeping the peace.). So why was the Franco-Prussian war so one-sided? France lost almost all the battles I think. And they lost the war too. Why? How could a Western European army lose almost all the battles? Was France really that weak back then?
That is an incredibly complex question, there are a great deal of factors, both small and large, that determined the outcome of the Franco-Prussian War. I will be breaking this into various sections to describe the differences and why they determined the final outcome.
Arms;
This was the first major European war where both major powers where using breech loader rifles. Breech loader Rifles had been massively successful for the Prussians in the 7 weeks war. While the Prussians had experience with them the French had also learned the lesson of the war; weight of fire is better than sheer stopping power.
The French had the Chassepot, the Prussians had the Dreyse needle rifle. These rifles while very similar in the macro, were very different in the details, and these made a difference. The Key differences to know is that the Dreyse had an issue that the firing pin (the needle in this needle rifle) would break. This was a known issue and soldiers would be given replacements that were easy to replace. The Chassepot had rubber seals that allowed for better aimed shots.
The Chassepot also had better stopping power and range. The Dreyse had an effective range of 600m and the Chassepot was effective out to 1,500m.
While the Prussians were outmatched in the small arms, they had the advantage in artillery. French forces still used brass muzzle loaded cannons. Prussian forces were using the Krupp 6lber with contact-detonator. Where the Chassepot was better than the Dreyse, the brass canons of the French forces were not even in the same league as the Prussian artillery.
This can be seen in how most of the battles played out during the war. Forces would meet, the Prussians would get pinned down, suffer heavier casualties until the Prussian cannons arrived and the French would be forced back.
Forces;
With field armies of similar sizes neither army had a numerical advantage. The key difference was that the French army used significantly more irregulars. Meaning that the Prussians had a slightly more experienced (From the 7 weeks war only 4 years prior) and professional army. Initial forces for both sides were 938,424 Prussians, of which 208,150 were Irregulars, and the French had 909,951, with 417,366 irregulars.
There are also smaller details to be mentioned such as superior Prussian education and training which created a better soldier, who then on the whole was more experienced than that of the French who had not fought a major power in some time (The answer depends on if Italy was a major power at the time, and that is another post).
Logistics, and what I think the key issue:
The Key difference here is that the Prussian had a General Staff, and a preexisting invasion plan. Which seems strange now but that was not part of how other nations conducted war. If you look at the Crimean war both the French and English forces simply brought equipment, supplies and men, dropped them off and that was not an issue. That was how war had been done for centuries.
Helmut von Moltke had lead the Prussian army into the future, with officers who only handled logistics and a new complicated form on moving troops and supplies they were faster, more mobile than Napoleon III could hope to be. Because of the improved movement the Prussians were able to ultimately out maneuver the French, keep the men supplied better and use superior cannons to support better disciplined troops.
This was a very brief overview of some of the factors, and not all of them, that lead to a Prussian victory.
If you want a more in depth source, I suggest The Franco-Prussian War by Michael Howard.