Python Python: open dat-files, read data

  • Thread starter Thread starter MaxManus
  • Start date Start date
  • Tags Tags
    Data Python
Click For Summary
The discussion revolves around troubleshooting two Python programs that are failing to produce the desired output. The first program attempts to read a file named "densities.dat" to create a dictionary of densities but does not yield any output because it lacks the necessary file reading method. The suggested solution emphasizes the importance of using `file.readlines()` to read the file contents into a list before processing each line. The second program aims to read from "output.txt," split the lines by commas, and convert specific values to floats. However, it incorrectly uses `line.split()` twice, which is unnecessary. The conversation highlights the need for proper file handling and data processing techniques in Python to achieve the intended results.
MaxManus
Messages
268
Reaction score
1

Homework Statement


I have two programs and neither works. In the first program I don't get any autput from andre(f):

f = open("densities.dat", "r")

def andre(f):
densities = {}
for line in f:
density = float(line[12:])
name = line[0:10].strip()
densities[name] = density

return densities

and in the second program I want to be able to use the numbers and get therfor strip "," and make a float

from math import *
f = open("output.txt", "r")
print type(1e-4)
epsilon = []
exact_error = []
n = []
for line in f:
words = line.split(",")
words = line.split()
print float(words[1].strip(","))
 

Attachments

Technology news on Phys.org
I didn't manage to upload densities.dat
densities.dat
air 0.0012
gasoline 0.67
ice 0.9
pure water 1.0
seawater 1.025
human body 1.03
limestone 2.6
granite 2.7
iron 7.8
silver 10.5
mercury 13.6
gold 18.9
platinium 21.4
Earth mean 5.52
Earth core 13
Moon 3.3
Sun mean 1.4
Sun core 160
proton 2.8E+14
 
I got the answear and I will post it later today.
 
so what was the solution after all ?
 
I'm sorry, but I don't longer know and I'm no longer able to find the solution.
Again I should have posted my solution.
 
You opened the file, but you didn't read the file. Normally the sequence goes something like this:

Code:
file = open("filename","r")
lines = file.readlines() # This is what you forgot
file.close()
for line in lines:
   name = float(line.strip().split()[0]) # Or something like this...
   ...
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 16 ·
Replies
16
Views
4K
  • · Replies 4 ·
Replies
4
Views
7K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
Replies
3
Views
4K