I was trying to convert an array to an integer, and it should have been easy. But I have come up with this error:
  traceback (last most recent call): file "C: \ user \ jo \ desktop \ box" (running) .p " Line 32, & lt; Module & gt; Pixel = [Map] for array in array (int, x) ValueError: Invalid binding for int () with base 10: '-'   The problem is that I am reading a file, it is an ascii grid, which assigns the -9999 number to the no_data value (this is because the focus in editing Very easy to do.) I can use a regex to convert these values to other people, but I do not want to, so I am thinking that this is just a difference in my code or if I do not Thinking someone can tell a solution?
Code:
  im = open ('input.txt', 'r') imgx = 1452 imgy = 1 9 16 array = [] for IM with open ("qqqf.txt", "r"): array.print (line) print array pixels = [map for x in the array (e) T, X)]   Input file:
  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 - 9999 - 9999 - 9999 - 9999 - 9999 1 1 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999   
 you were confused with the  map  and the list's understanding 
  pixels = [array in array for max (int, x) x]    Here you take every element of the  array , name it  X  and then every element in the function  int  to   x  . But  x  is a string, and its element is a letter, so you apply  int  to  '-' , then  9 ', then ' 9 ' and therefore a ... 
What you just wanted to do was
  Pixels = Map (int, array)   Also, if every row of your file has many numbers, you
  array.append (line )   For
  array.append (line.split ())    Or with one of you End will look like array  [ '- 99 9 -999-99 9' -999 -999-99 9]  
Comments
Post a Comment