加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python:写入txt文件

(2018-08-17 18:11:38)
分类: python
第一种:Python自带的内置函数函数write()
     write()方法可将任何字符串写入一个打开的文件。注意:Python字符串可以是二进制数据,而不仅仅是文字。(需要将数字转为字符串)
    write()方法不会在字符串结尾添加换行符('\n')
语法:fileObject.write(string)
     被传递的参数是要写入到已打开文件的内容
eg:
# One
f = open('a.txt', 'w')
f.write('Hello world!')
f.close()     # 需要关闭打开的文件

# Two
with open('a.txt', 'w') as f:
    f.write('Hello World!')
第二种:numpy:np.savetxt()方法
nump.savetxt(fname, X)
参数:
    fname:文件名
    X:需要保存的数组(一维或二维)
eg:
import numpy as tf
a_1 = np.arange(5)
a_2, a_3 = a_1 * 2, a_1 * 3
np.savetxt('a.txt', (a_1, a_2, a_3))
第三种:pandas:to_csv()方法
DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None,header=True, index=True, index_label=None, mode='w', encoding=None, compression=None, quoting=None, quotechar='"', line_terminator='\n', chunksize=None, tupleize_cols=None, date_format=None, doublequote=True, escapechar=Nonedecimal='.')
参数:

path_or_buf=None: 字符串或文件句柄,默认无文件 
路径或对象,如果没有提供,结果将返回为字符串。

sep : 输出文件的字段分隔符,默认情况下:‘,’

na_rep : 字符串,默认为 ‘’     浮点数格式字符串

float_format : 字符串,默认为 None ,浮点数格式字符串

columns :顺序,可选列写入

header : 字符串或布尔列表,默认为true 写出列名。如果给定字符串列表,则假定为列名的别名。

index :布尔值,默认为Ture      写入行名称(索引)

index_label : 字符串或序列,或False,默认为None 
如果需要,可以使用索引列的列标签。如果没有给出,且标题和索引为True,则使用索引名称。如果数据文件使用多索引,则应该使用这个序列。如果值为False,不打印索引字段。在R中使用index_label=False 更容易导入索引.

mode : 模式,值为‘str’,字符串 。写模式,默认‘w’。在已有文件的基础上填入数据,采用模式‘a’

encoding : 编码:字符串,可选 
表示在输出文件中使用的编码的字符串,Python 2上默认为“ASCII”和Python 3上默认为“UTF-8”。

compression : 字符串,可选项 
表示在输出文件中使用的压缩的字符串,允许值为“gzip”、“bz2”、“xz”,仅在第一个参数是文件名时使用。

line_terminator :字符串,默认为 ‘\n’ 
在输出文件中使用的换行字符或字符序列

quoting : CSV模块的可选常量 
默认值为to_csv.QUOTE_MINIMAL。如果设置了浮点格式,那么浮点将转换为字符串,因此csv.QUOTE_NONNUMERIC会将它们视为非数值的。

quotechar : 字符串(长度1),默认“” 
用于引用字段的字符

doublequote :布尔,默认为Ture 
控制一个字段内的quotechar

escapechar : 字符串(长度为1),默认为None 
在适当的时候用来转义sep和quotechar的字符

chunksize : int或None      一次写入行

tupleize_cols : 布尔值 ,默认为False 
从版本0.21.0中删除:此参数将被删除,并且总是将多索引的每行写入CSV文件中的单独行 
(如果值为false)将多索引列作为元组列表(如果TRUE)或以新的、扩展的格式写入,其中每个多索引列是CSV中的一行。

date_format : 字符串,默认为None 
字符串对象转换为日期时间对象

decimal: 字符串,默认’。’ 
字符识别为小数点分隔符。例如。欧洲数据使用 ’,’

eg:

time_stamp_1 = pd.Series(time_stamp_tmp, name='Timestamp')#name='Timestamp'
img_name_time_2 = pd.Series(img_name_tmp, name='ImageName')
head = ['Timestamp', 'ImageName']
save = pd.DataFrame({'Timestamp':time_stamp_1, 'ImageName':img_name_time_2}, columns=head)
save.to_csv('data_time_imgname.txt', index=False, sep='\t')

注意:
若是在已有的文件中添加新的数据。可以采用一下方式:
with open('a.txt', 'a' as f:
    f.write('\n')
    f.write('My name is Jane')
    

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有