Python—数据分析------读取文本文件

一、创建文本文件
1.打开Windows系统下的Notepad/Notepad++
2.在Notepad/Notepad++中写入一些文字(英文)
3.将文件保存到桌面上,并命名
4.在Notepad/Notepad++中新建一个文件,写入以下代码:

#!/usr/bin/env python3
import sys  #导入sys模块
print("OutPut #1 :I'm very like to learn python ")  #测试代码
input_file=sys.argv[1]  #将文本文件写入
print ("Output #1:")   #输出格式
filereader=open(input_file,'r')  #定义filereader变量,打开文本文件
for row in filereader: #用for循环遍历文本文件的每一行
    print (row.strip())  #输出遍历结果
filereader.close() #关闭文本文件

5.按win+r,输入cmd,打开控制台,在控制台输入cd Desktop
切换到桌面,再输入python +文件名(程序所在文件).py +文件名(英文所在文件).txt
6.可以看到,英文被显示到了屏幕上,完成了创建与使用文本文件。
7.如果脚本文件与文本文件不在同一位置,就需要输入文本文件的完整路径名,例:文本文件在C盘的Documents文件夹中,就需要在命令行中输入以下代码:python 脚本文件名.py "C:\users\主机名\Documents\文本文件名

二、新的读取文件的语法
代码如下:

input_file=sys.argv[1]  #导入文本文件
print("Output #2:") #输出格式
with open (input_file,'r',newline='') as filereader:  #用with语句访问文本文件
   for row in filereader: #用for 遍历with 中的文本文件
         print("{}".format(row.strip()))  #将结果输出

这种方法更加清晰,在更复杂的脚本中不会出现错误,不需要调用close函数来关闭对象

三、读取多个文本文件
1.导入OS模块和glob模块,OS模块可以将一个或多个路径成分链接在一起,glob 模块可以找出符合与特定模式相匹配的所有路径名
2.在Notepad/Notepad++中再新建一个文本文件,保存在桌面上
3.在脚本文件中写入以下代码:

import os #导入os模块
import glob #导入glob模块
import sys #导入sys模块
print("Output #3:") #输出格式
inputPath =sys.argv[1] #传入文件
for input_file in glob.glob(os.path.join(inputPath,'*.txt')): #在for循环中使用 glob.glob,os.path.join两个函数,找出符合特定模式的某个文件夹下的所有文件
    with open (input_file,'r',newline='')as filereader :  #用with语句访问文本文件
	     for row in filereader:  #用for 遍历with 中的文本文件
		     print("{}".format(row.strip()))  #将结果输出

4.在控制台输入:python 脚本文件名.py “C:\Users\主机名\Desktop”
5.可以看到,屏幕上显示了两个文本文件的全部内容,成功操作了两个文件

三、写入文本文件
1.两种方法:write和writelines
write 可将单个字符串写入一个文件,writelines可以将一系列字符串写入一个文件
2.示例:向脚本文件添加代码:

import os  #导入os模块
import glob  #导入glob模块
import sys  #导入sys模块
new_words=['a','b','c','d','e','f','g','h','i','j'] #写入新的字符
max_index=len(new_words)#计算列表中字母的数量,不超过这个值
output_file=sys.argv[1]#将字符传入文本文件
filewriter=open(output_file,'w')#设定打开方式为可写
for index_value in range(len(new_words)):#使用for循环在列表new_words中进行遍历,使用len和range函数跟踪列表中各字母的索引值
    if index_value < (max_index-1):
	    filewriter.write(new_words[index_value]+'\t')
    else:
	    filewriter.write(new_words[index_value]+'\n')#if -else语句判断索引值是否小于9,max-1,直到列表的最后一个字母,这个条件才为True,若执行为False执行else,向输出文件中写入最后一个字母,并在后面加上换行符。
filewriter.close()#结束程序
print("Output #4:Output written to file")#输出提示

3.在控制台输入:python 脚本文件名.py "C:\Users\主机名\Desktop\文本文件名.txt
4.可以看到,你指定的那个文本文件已经变为上面代码中插入的字符了,写入成功。

四、写入CSV文件
1.将下列代码添加到脚本文件下面:

my_numbers=[0,1,2,3,4,5,6,7,8,9] #写入新的数字
max_index=len(my_numbers)#计算列表中数字的数量,不超过这个值
Output_file=sys.argv[1]#将数字传入文本文件
filewriter=open(output_file,'a')# 'a'代表追加模式,若在命令行中输入同样的文本文件名,那么,新加入的数字会追加到文本文件中,不会删除以前的文本内容。
for index_value in range(len(my_numbers)):#使用for循环遍历时if语句会向文本文件写入一个0,再写入一个逗号,并以此方式继续写入列表中的其他数值,直到最后一个数值,之后执行else,将最后一个数写入文本文件,并加入换行符。
    if index_value <(max_index - 1):
       filewriter.write(str(my_numbers[index_value])+ ',' )
    else:
       filewriter.write(str(my_numbers[index_value])+ '\n')#
filewriter.close()
print("Output #5:Output append to file")

2.在控制台输入:python 脚本文件名.py "C:\Users\主机名\Desktop\文本文件名.txt
3.可以看到,文本文件中新增了一行数字,写入成功
4.将前面的写入字母的例子中的制表符换成逗号并将文本文件命名为:文本文件名.csv就可以创建一个CSV文件。

猜你喜欢

转载自blog.csdn.net/qq_43709590/article/details/86527103