Hi, in this tutorial, we are going to learn how to work with text files, and then how to use them for reading and writing geometries from end to it. The first thing you're going to do is open your London project that you worked on during the last processing lessons. It is important that you work with plain text files. Since in many cases, the data might be located in these files as a result of other applications. If you want to work with these files, you have to use the open function, either for writing or reading. Because we don't have any files to read, we are going to write one.
So write f equals open parentheses is type in the absolute path where you want to locate the file and close in quotes. In this case, the absolute path will be C, colon, backslash, London project, backslash sample dot txt, then write a comma and a W enclosed in quotes. The last letter specifies the right mode, overwriting the file if it already exists. However, if you want to read a file, you must use the letter R. The letter A provides the append mode. So you write the information at the end of the file Now, press enter and you will be able to handle The object called F, then use the method called write. To manipulate the content of the file.
Please write f dot, write, open parenthesis, type in the following message. I've been learning Python and arc pi for geoprocessing. In arc GIS Pro, in this case, use double quotes. And after that, press enter. When you do that, you'll get six, seven, which matches with the number of the character of the string that you wrote into the file. Then write f dot, close, open parenthesis, and press enter.
Again. It's important That you close the file to save all the contents. If you do, don't do it, you will lose the information. Now go to the file and open it. Check if the text that you wrote is there, go to arc GIS. Open the file again, you can use the up arrow to load the previous lines of code.
Once you find it, press enter and write the following message. I found arc pi useful for geo processing. Then press enter and check if the message was written into the file. Open the file again. You will notice the file is blank since Python is going to overwrite the file, because we use the right word mode and not the append mode. Now go to arc GIS and close the file to save the string, then check the file and observe the outcome.
Now let's make an example using the append mode. In this case, open the file in this mode, then write the first message and close the file to save the string. Open the file and observe the outcome, the two strings are next to each other. To avoid that, you can use this sequence backslash n to create a new line. So if you put it at the end, the following one will appear on a new line. Therefore, open the file in the append mode again, and write the escape sequence.
For a new line, then write a previous message placed in the escape sequence. Now write this is a new line and close the file, check the output file. If you want to control the new lines, use the escape sequences apart from the strings. Let's make another example. In this example, we are going to generate some random xy coordinate using the random model. values will be from zero to one for each one.
So the first thing you're going to do is to import the model called random. Then open a new file called random underscore point dot txt in this Same part of London project using the right mode. After that, create a for loop using the range function and do an integer list of 50 elements. That is, for one in range 50. Then set the variable x to random dot r A and D integer, open parenthesis, zero, comma 10. Do the same with the variable y, then use the right method in the file, as we've done in previous example, but you are going to use the format method of the string as I show you in the video.
Then use escape sequence to create a new line. After that, press Enter twice, close the file and check the output file. If you want to read the text file, you must open the file using the read mode. When you read a file, it must exist in case that the file doesn't exist, you will get file not found error. In this example, we are going to read the first 10 points that we generated in the previous example. Please create an empty list called points.
Open the random points. txt file using the read mode and press enter. You have three different methods to read a file. So you have to read lines method using that method. You will read the whole file and return a list of string lines. That is each line is an element of the list.
The other method is read line. In this case, it reads only a line of the file, and you have to use it several times. If you want to read the entire file, the third method is read that creates the complete file into only one string. We are going to use the read line method since you are going to read only the first thing. So create a for loop for 10 elements, then set the variable called s to the outcome of the read line method. Now, you have to process the string to convert into a tupple.
So you must delimit the string without the parenthesis therefore set the best Trouble called list one, two, the result of s, open bracket, write one, colon, minus two, since we don't want to include the escape sequence in the line, then call the split method and use the comma as a delimiter. Now press Enter. Now the list holds the XY coordinates in strings. Next, create a tupple with integers values and append it to the list called point as I show you in the video, then press Enter twice and observe the outcome of points. You can also use the R plus w plus in a plus mode for updating the file. If you are going to Read and Write the file.
But remember, the W plus will truncate the file. In our plus and w plus cases, the string is positioned at the beginning of the file. Now we are going to work with files in arc GIS. So we are going to use an example from the last lesson. In this example, we are going to write the vertices of multiple features in a file called multi part dot txt in the same folder up the project, open the idle Python and create a new file. then import the arc pi model and open a new file called multi part dot t x t Then create a search cursor of new feature using the Borel field and shape a token.
Then create a for loop using the search cursor and create an if statement. Using the method is multi part in row one as the condition. Then if the condition is true, set the variable called count to zero, right row zero in the file with the escape sequence to the new line and create a second for loop using row one as a list and the object called part. Now write this message in the file using the escape sequence and create a third for loop using part as a list and the object called points then, right Each coordinate as I show you in the video, don't forget the escape sequence. Now set the variable count to incremental step of one unit outside and third loop that is in the second one. After that, close the file outside the first for loop, save the file inside the folder of London project and name it point underscore multipart dot p y.
Now go to the Python window up arc GIS, load the file and press Enter twice. Open the output file and observe the result. Now we're going to write geometries in arc GIS from the file that you created before. So, the first thing you're going to do is to create a folder called data at the London project directory. Then go to the Python model that you created before. Delete the close file statement for the moment and write arc p y dot E and V dot overwrite output equal true, then use it to call create feature class from management.
The required inputs are the path and the name of the new feature class. If you don't specify a spatial reference, it will be unknown. The output path with the absolute path of data folder and the name would be multi part dot s. HP, now called the tool as I showed you in the video. At this point, you will have created an empty feature class. Then create an insert cursor to include the new rows of the feature using the absolute path of the feature and the shape at token. Now create a point object to store each vertex that is arc pi dot point and open parenthesis.
You must open the file using the read and update mode and sculpt the file first using read line. Then create a while loop to iterate over the reading until it will get an empty string. So the condition statement will be different. From empty, now, you need an if statement. To control whether it's a line or a point, you have two labels, name of the borrow and number of the part. If you read the second one, The following is a point.
But it's not the second one, you have to read a line. That is the statement or else no set the variable called ID to zero. This variable will control the ID for each point. Then create an array to hold all the points of the polygon. Read the line and set the variable line to this value. Next, create another while loop nested to the first inside the if statement.
The condition The loop will be line dot find dot greater than zero. Since the vertices are the only strings with dots. When you find a line, it will return a minus one. And if you find a point, it will return a value greater than zero. Now increment the ID instead of one unit, and assign the value of point.id. Create a variable called line underscore list, set it to the string line without escape sequence and split it by a comma.
You will have two elements in the list. Before you assign those values to the XY coordinates. You must convert them into floating point values. As I show you in the video. Open the points to an array using the Add method and read the lines of the file. Now when the second loop breaks for a line, you must create a polygon using the array.
Then use the insert row method of the cursor to add the new row. When the first line breaks, you must close the file and delete the cursor. That's all for this tutorial. I hope you like it and that you want to watch more tutorials about Python and GIS