不同编程语言中文件存取相关操作
来源:互联网 发布:淘宝永久封店怎么办 编辑:程序博客网 时间:2024/05/29 09:23
当在不同语言间切换的时候,对一些相似操作容易产生混淆。在这里记录下不同语言中文件读取的区别,这篇文章始终不会写完,我偶尔碰到一点就记录一点。
1、Python中文件操作
1.1 获取文件操作权限
Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用 file 对象做大部分的文件操作。
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
语法:
file object = open(file_name [, access_mode][, buffering])
例如:fo = open(“XXX.txt”, “r+”)
各个参数的细节如下:
file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行;如果将buffering的值设为大于1的整数,这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。
不同模式打开文件的完全列表:
1.2 执行文件操作
利用file对象的属性可以对实现对文件的操作主要有:获取文件相关信息、读文件(获取内容)、写文件、关闭file对象
以下是和file对象相关的属性列表:
print(fo.mode)rfile.name()返回文件的名称。fo=open(“Python读写文件.txt”,’r’)
print(fo.name)Python读写文件.txtfile.tell()返回指针在当前文件中的位置,按字符算,下一次读取会从该位置之后进行fo=open(“Python读写文件.txt”,’r’,encoding=’UTF-8’)
content=fo.read(10)
print(content)
print(fo.tell())try somet
12
:似乎结果不同file.seek(offset,[,from])重新调整指针位置,from表示起始的参考位置,offset表示离参考位置的距离fo=open(“Python读写文件.txt”,’r’,encoding=’UTF-8’)
content=fo.read(10)print(content)
print(fo.tell())
position=fo.seek(0,0)
content=fo.read(10)
print(content)print(fo.tell())try somet
12
try somet
12file.read()按字符读取文件内容,可以是二进制数据,而不仅仅是文字fo=open(“Python读写文件.txt”,’r’,encoding=’UTF-8’)
content=fo.read(10)
print(content)try sometfile.readline()整行读取fo=open(“Python读写文件.txt”,’r’,encoding=’UTF-8’)
content=fo.readline()
print(content)……file.readlines()整个文件一次性读取,此时要注意文件大小,以免产生错误fo=open(“Python读写文件.txt”,’r’,encoding=’UTF-8’)
content=fo.readlines()
print(content)……file.write()往文件中写内容,file对象要以写方式或追回方式打开fo=open(“Python读写文件.txt”,’a’,encoding=’UTF-8’)
content=fo.write(“我只是试试”)file.closed()关闭file对象fo=open(“Python读写文件.txt”,’a’,encoding=’UTF-8’)
content=fo.write(“我只是试试”)
fo.close()
1.3 其他注意事项
由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现
file_object = open("Python读写文件.txt",'r',,encoding='UTF-8')try: all_the_text = file_object.read( )finally: file_object.close( )
注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。
更简洁的方式
with open('/path/to/file', 'r') as f: print(f.read())
自动帮我们调用close()方法
1.4 关于中文乱码问题
要写入特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码。如果读入UTF-8编码的txt文件提示“builtins.UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa0 in position 76: illegal multibyte sequence”的错误,可以如此操作,fo=open(“Python读写文件.txt”,’r’,,encoding=’UTF-8’);但是以这种用realines读入时,文件数据开头有“\ufeff”,有时间再查找原因。
1.5 利用Pandas库读取文件数据
pandas中有很多种读数据的函数,像读文本的read_table()函数,读csv文件的read_csv()函数。
2、R中文件操作
2.1 获取文件操作权限
2.2 执行文件操作
2.3 其他注意事项
2.4 关于中文乱码问题
3、Java中文件操作
3.1 获取文件操作权限
3.2 执行文件操作
3.3 其他注意事项
3.4 关于中文乱码问题
- 不同编程语言中文件存取相关操作
- c语言中文件相关操作
- C#中文件相关操作
- IOS 中文件相关操作
- C语言中文件操作
- C语言中文件操作
- windows编程中文件操作
- C中文件操作相关函数
- Android中文件的相关操作.
- Go语言学习之os包中文件相关的操作(The way to go)
- C语言中文件操作备忘录(一)
- c语言中文件的操作
- C语言中文件的操作
- C语言中文件操作函数
- C语言中文件的操作
- 015_C语言中文件操作
- c语言中文件的操作
- C语言中文件操作笔记
- P2p二维码
- java集合框架的练习之TreeSet集合与ArrayList集合的混合使用
- java笔试题总结
- 1118 机器人走方格 DP 或者组合数+逆原
- 地牢逃脱问题(BFS拓展java)
- 不同编程语言中文件存取相关操作
- CAD二次开发入门——Hello World以及画一个圆
- android获取assets资源
- Qt 在不同平台上所用编译器 比较与分析
- linux 多线程编程(1)
- 201604-2 俄罗斯方块 ccf
- JAVA上百实例源码以及开源项目
- 接口 学生 研究生
- 【c语言】C语言精华部分