文件打开方式,读文件,写文件

 

 

文件的打开的两种方式:

f = open("data.txt","r")   #设置文件对象
f.close() #关闭文件


#为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代
with open('data.txt',"r") as f:    #设置文件对象
    str = f.read()    #可以是随便对文件的操作

一、读文件

    1.简单的将文件读取到字符串中

 

1 f = open("data.txt","r")   #设置文件对象
2 str = f.read()     #将txt文件的所有内容读入到字符串str中
3 f.close()   #将文件关闭

 

 2.按行读取整个文件

#第一种方法
f = open("data.txt","r")   #设置文件对象
line = f.readline()
line = line[:-1]
while line:             #直到读取完文件
    line = f.readline()  #读取一行文件,包括换行符
    line = line[:-1]     #去掉换行符,也可以不去
f.close() #关闭文件


#第二种方法
data = []
for line in open("data.txt","r"): #设置文件对象并读取每一行文件
    data.append(line)               #将每一行文件加入到list中


#第三种方法
f = open("data.txt","r")   #设置文件对象
data = f.readlines()  #直接将文件中按行读到list里,效果与方法2一样
f.close()             #关闭文件

 3.将文件读入数组中

1 import numpy as np
2 data = np.loadtxt("data.txt")   #将文件中数据加载到data数组里

 二、写文件

   1.简单的将字符串写入txt中

1 with open('data.txt','w') as f:    #设置文件对象
2     f.write(str)                 #将字符串写入文件中

  2.列表写入文件

      单层列表

1 data = ['a','b','c']
2 #单层列表写入文件
3 with open("data.txt","w") as f:
4     f.writelines(data)

 双层列表

#双层列表写入文件

#第一种方法,每一项用空格隔开,一个列表是一行写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f:                                                   #设置文件对象
    for i in data:                                                                 #对于双层列表中的数据
        i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n'  #将其中每一个列表规范化成字符串
        f.write(i)                                                                 #写入文件


#第二种方法,直接将每一项都写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f:                                                   #设置文件对象
    for i in data:                                                                 #对于双层列表中的数据
        f.writelines(i)                                                            #写入文件

3.数组写入文件中

#将数组写入文件
import numpy as np

#第一种方法
np.savetxt("data.txt",data)     #将数组中数据写入到data.txt文件
#第二种方法
np.save("data.txt",data)        #将数组中数据写入到data.txt文件

 

 

例子:将TXT中的图层,转为shp

import arcpy
from arcpy import env
import os
input = r"E:\pythontest\MDB"
input2 = r"E:\pythontest\out"
env.workspace = input
mdbs = arcpy.ListWorkspaces("*","Access")
for mdb in mdbs:
    mdbname = mdb[-14:-4]
    env.workspace=mdb
    arcpy.CreateFolder_management (input2, mdbname)#创建文件夹
    FeatureClasses = arcpy.ListFeatureClasses() #返回的是一个列表
    shppath = input2+os.sep+mdbname
    
    textpath = input+os.sep+"text.txt"
    f = open(textpath,"r")
    lines = f.readlines()#将text中按行读到list里
    #print lines
    for line in lines:
        linename = line[:-1]#去掉换行符
        #print linename
        for FeatureClass in FeatureClasses:
            #if FeatureClass == "TERL" or FeatureClass == "VEGL" :
            if FeatureClass == linename:
                #print FeatureClass
                arcpy.FeatureClassToShapefile_conversion (FeatureClass, shppath)#要素类转 Shapefile (转换)
    f.close()
print "done"

 

posted on 2019-01-14 15:24  gis木棉鱼  阅读(735)  评论(0编辑  收藏  举报