从txt文件中导入数据
(1)打开文件读取整个文件
函数open返回一个表示文件的对象,对象存储在infile中。关键字with在不需要访问文件时将其自动关闭。读取出的内容以字符串形式保存在data1/data2里
(2)第一种:读取所有行 infile.readlines()
(3)第二种:每行分开读取 for循环 line.strip("\n").split()
(4)第三种:每个字符分开读取 for循环-for循环
(5)读取文本文件时,python将其中的所有文本都解读为字符串str。如果读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转化为整数。或使用float()将其转换为浮点数。
def read_txt(inputpath, outputpath):
with open(outputpath, 'w', encoding='utf-8') as file:
with open(inputpath, 'r', encoding='utf-8') as infile:
# 第一种:读取所有行
#data1 = infile.readlines()
#print(data1)
# 输出:['1 2 3 4 5\n', '6 7 8 9 10']
# 第二种:每行分开读取
data2 = []
for line in infile:
data_line = line.strip("\n").split() # 去除首尾换行符,并按空格划分
print(data_line)
data2.append([int(i) for i in data_line])
print(data2)
# 输出:[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
# 第三种:每个字符分开读取
data = data2
for i in range(len(data2)):
for j in range(len(data2[i])):
data[i][j] = str(data2[i][j])
print(data)
# 输出:[['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10']]
# 写入方法
for line in data2:
# data = '' + '\t'.join(str(i) for i in line) + '\n' # 用\t隔开
data = '' + ' '.join(str(i) for i in line) + '\n' # 用空格隔开
file.write(data)
if __name__ == "__main__":
input_path = '1.txt'
output_path = '2.txt'
read_txt(input_path, output_path)
split():语法:str.split(str="",num=string.count(str))[n] 拆分字符串。通过制定分隔符将字符串进行切片,并返回分割后的字符串列表[list] 参数:str:分隔符,默认为空格,但不能为空("") num: 表示分割次数。如果指定num,则分割成n+1个子字符串,并可将每个字符串赋给新的变量 [n]: 选取第n个分片,即第n个字符串,从0开始算。 str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素。