open函数(python文作操作函数open())
本文目录
- python文作操作函数open()
- 各位高手!!C语言中为什么用fopen函数打开文件错了!我用的是DEV!求解
- C++的Open()函数的参数的意义
- 关于文件操作(C语言)
- C语言Fopen函数的用法
- 若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件
- fopen函数,哪些mode参数是正确的
- c++中fopen函数读文件怎么用文件数据
- 关于matlab fscanf函数
- open函数用法
python文作操作函数open()
1.并非只能访问文本文件
open可以访问任何形式的文件,在访问非文本格式文件(二进制文件)的时候,访问模式通常加上‘b’(即二进制模式:‘rb’或‘wb’),但并不必须,依情况而定
2.路径是填写在前面的filename参数处的
如你的例子,若要只读这个文件,则是:
open(’D:\\123.txt’, ’r’)
(由于\是转义符,所以要将他再转义,才能得到\符号本身)
若要写入,则是:
open(’D:\\123.txt’, ’w’)
以此类推
如果是不加路径,只有一个文件名:
open(’123.txt’, ’r’)
则会在python运行的当前目录下寻找该文件名的文件
另:读模式(r)必须保证文件存在,写模式(w)至少要保证文件所在目录存在(文件本身可以不存在)
如果不满足,则系统会抛出一个IOError
各位高手!!C语言中为什么用fopen函数打开文件错了!我用的是DEV!求解
主要是下面这句,
if((fp1 = fopen("E:\\编译原理\\datafile1.txt","r")) == NULL) // 打开并测试文件
因为这是以读的方式打开,所以你的路径里确保要有E:\\编译原理\\datafile1.txt这个文件才行,否则出错。
第2个是以写的方式打开,会自动创建这个文件
C++的Open()函数的参数的意义
Open函数
定义和用法:open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。
语法:window.open(URL,name,features,replace)
参数:
URL:一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
name:一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 《a》 和 《form》 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
features:一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
replace:一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:true - URL 替换浏览历史中的当前条目。false - URL 在浏览历史中创建新的条目。
提示和注释:
请不要混淆方法 Window.open() 与方法 Document.open(),这两者的功能完全不同。为了使您的代码清楚明白,请使用 Window.open(),而不要使用 open()。
实例:
《html》 《body》 《script type="text/javascript"》 myWindow=window.open(’’,’’,’width=200,height=100’)myWindow.document.write("This is ’myWindow’") myWindow.focus() 《/script》 《/body》 《/html》
关于文件操作(C语言)
首先,这段程序是通过 输入文件路径及文件名来打开文件;
filename;这个字符型数组是用来存方输入的文件路径及文件名的(注意,数组大小为10,因此输入的路径和文件名不能超过10个字符)
fopen(“c:\\a.txt”,“r”)函数的两个参数中第一个参数是文件的路径及文件名,第二个是文件的打开方式(这里不多说了)。
程序中 scanf("%s",filename);是让你输入文件路径:里如你将c:\\a.txt存放在数组filename中.
在if((fp=fopen(filename,"w"))==NULL)中,filename你已经知道,它代表数组的首地址,而且他也代表字符串!关于这一点,他就与:printf(“%s”,filename)类似,filename可以代表这个字符串。
这样以来,if((fp=fopen(filename,"w"))==NULL)就等价于
if((fp=fopen(“c:\\a.txt”,"w"))==NULL)
明白了吗?
C语言Fopen函数的用法
fopen函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
其中,
“文件指针名”必须是被说明为FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符串数组。
例如:
FILE *fp;
fp=("file a","r");
其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16","rb")
其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。
使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式
意义
“rt”
只读打开一个文本文件,只允许读数据
“wt”
只写打开或建立一个文本文件,只允许写数据
“at”
追加打开一个文本文件,并在文件末尾写数据
“rb”
只读打开一个二进制文件,只允许读数据
“wb”
只写打开或建立一个二进制文件,只允许写数据
“ab”
追加打开一个二进制文件,并在文件末尾写数据
“rt+”
读写打开一个文本文件,允许读和写
“wt+”
读写打开或建立一个文本文件,允许读写
“at+”
读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”
读写打开一个二进制文件,允许读和写
“wb+”
读写打开或建立一个二进制文件,允许读和写
“ab+”
读写打开一个二进制文件,允许读,或在文件末追加数据
对于文件使用方式有以下几点说明:
1) 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
2) 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3) 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4) 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5) 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
6) if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。
7) 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
8) 标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。
若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件
【答案】:B
B。【解析】本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二迸制文件;方式“rb+”为读写打开一个二进制文件;方式“rb”为输入打开一个二进制文件。
fopen函数,哪些mode参数是正确的
里面的含漱剂对了,应该是第2个,三个参数是正确的,所以的话你可以通过通用数值,然后就知道具体是哪个是正确的了。
c++中fopen函数读文件怎么用文件数据
本文分别简单讲述了如何利用C和C++库函数对文件的读写,涵盖了常用的文件操作函数。网上关于C/C++文件操作的介绍的博客很多,所以本文也大同小异,也主要是做一个备忘,不有每次都百度了。但本文重点在于几个库函数的运用,而不是从文件的属性或分类开始。\x0d\x0a一、C文件操作:\x0d\x0a C语言中,文件的操作都是通过一个FILE类型的文件指针进行,也就是说只有通过文件指针,才能调用相应的文件。FILE是一个由系统定义的结构体(定义在stdio.h中),可以存放文件的相关信息。\x0d\x0a文件的打开(fopen函数)\x0d\x0a 文件的操作过程一般为:打开 =》 读/写 =》 关闭。\x0d\x0afopen函数的原型如下:\x0d\x0a FILE* fopen(c***t char* filename, c***t char* mode); \x0d\x0a函数调用就比较简单了:\x0d\x0a FILE* fp;\x0d\x0a fp = fopen("file1.txt", "r");\x0d\x0a如果打开成功,返回file1.txt文件的指针,如果打开失败,返回一个NULL指针,所以调用fopen()后我们需要检查fp的值才进行下一步操作。fopen()的第一个参数为文件名,第二个参数为文件打开方式,含义如下表:\x0d\x0a说明: 1. 使用"r"时,如果文件不存在,则出错。\x0d\x0a 2. 使用"w"时,如果没有文件,则创建一个新文件。\x0d\x0a 3. 使用"a"时,如果希望向文件尾添加数据,则该文件必须存在,否则出错。\x0d\x0a 4. "r+","w+","a+"都是可以输入和输出数据,但必须遵守上述3点\x0d\x0a 5. 操作二进制文件时,加上"b"字符,且二进制文件对换行符不会进行转换,而文本文件会将换行符转换为回车和换行两个字符。\x0d\x0a文件的关闭(fclose函数)\x0d\x0a 在使用完一个文件后,若不关闭则会造成系统资源泄漏。使用fclose()关闭文件即可,原型为 int fclose(FILE* fp)。使用:fclose(fp); flose()返回0时为顺利关闭文件,否则返回EOF(-1)。\x0d\x0a文件的读写\x0d\x0a 1) fputc(), fgetc()分别为从文件流中写和读一个字符,原型分别如下:\x0d\x0a 写:int fputc(int c, FILE* fp); 读:int fgetc(FILE* fp); 失败时均返回EOF\x0d\x0a 2) fputs(), fgets()分别为从文件流中写和读一个字符串,原型分别如下:\x0d\x0a 写:int fputs(c***t char* str, FILE* fp); 例如: fputs("I love this game!", fp);\x0d\x0a 读:char* fgets(char* str, int n, FILE* fp); 从流中读取n-1个字符或读完一行,参数str用于接收读取的字符串。注意当读取一行时,不包括行尾的’\n’字符。\x0d\x0a 3) fseek() 一般用于二进制模式打开的文件中,功能是定位到流中指定的位置。原型如下:\x0d\x0a int fseek(FILE* fp, lont offset, int whence); 参数offset是移动的字符数,whence是移动的基准,取值是:\x0d\x0a SEEK_SET 0 //文件开头 \x0d\x0a SEEK_CUR 1 //当前读写的位置 \x0d\x0a SEEK_END 2 //文件尾部 \x0d\x0a 4) fprintf(),fscanf()是将数据按格式输出输入到文件流中,用法类似printf()和scanf()。原型分别如下:\x0d\x0a int fprintf(FILE* fp, c***t char* format, ...); 它与printf()不同的就是将数据写到了文件流中,而不是控制台罢了。\x0d\x0a int fscanf(FILE* fp, cosnt char* format, ...); 从文件流中按格式读取,与scanf()不同的就是数据是从文件流中读取而已。\x0d\x0a 例如: fprintf(fp, "count=%d", 5); fscanf(fp, "%d", &x);\x0d\x0a 5) feof()是检测是否已到文件尾,是返回真,否则返回0,原型是 int feof(FILE* fp);\x0d\x0a 6) rewind() 则是把当前的读写位置回到文件开始,相当于 fseek(fp, 0L, SEEK_SET); 原型: void rewind(FILE* fp);\x0d\x0a 7) remove() 删除文件,原型: int remove(c***t char* filename); 参数为要删除的文件名,成功则返回0;\x0d\x0a 8) fread(), fwrite() 它们相当于可将一块的数据读出或写入,相当的方便。原型如下:\x0d\x0a size_t fread(void* ptr, size_t size, size_t n, FILE* fp); 从流中读指定个数的字符,size是每块的字节娄,n则是读取的块数。\x0d\x0a size_t fwrite(c***t void* ptr, size_t size, size_t n, FILE* fp); 类似的是向文件流中写入n块size字节数的数据。可以看到数据指针为void*型,即可以使用任何类型的指针来替换。例如:\x0d\x0a现在一个结构体: struct student_t{char name, sizeof(struct student_t), 1, fp);\x0d\x0a 或者:fread(stus, sizeof(struct student_t), 3, fp); 这样便可将三个学生的数据读入到stus变量中了(有木有很方便呐)\x0d\x0a注意:如果你发现使用fread()读取之后,最后一个学生读取的数据不完全,可能是由于你没有使用二进制模式打开的原因。\x0d\x0a 9) 最后是tmpfile()和tmpnam(),前者为生成一个临时文件,后者为生成一个唯一的文件名,具体使用在此不介绍了。\x0d\x0a二、使用C++中的fstream文件流操作类进行文件的读写\x0d\x0a 使用fstream操作文件与使用C库函数类似,只不过fstream为面向对象方式,或多了上些C++的特性。首先,这里大概有三个流:\x0d\x0afstream为文件输入输出流,ifstream为输入文件流,ofstream为输出文件流,它们与ostream不同的就流的目的地为文件,而不是控制台。这里只介绍与上述的一些不同点:\x0d\x0a 1. 打开文件,如可以是 ifstream input_file("file2.txt"); 这样将会以默认方式打开file2.txt文件并进行读取。也可使用open()方式打开一个文件,并指定打开方式,例如:\x0d\x0a ifstream input_file;\x0d\x0a input_file.open("file2.txt", ios::binary); \x0d\x0a打开后,可以使用is_open()检测是否打开成功:\x0d\x0a if(input_file.is_open()){},然后可以使用流操作符向文件写数据了,例如:\x0d\x0a input_file 《《 "this is a test line";\x0d\x0a input_file 《《 "another info";\x0d\x0a另外,这里的文件打开方式在ios空间下:\x0d\x0a ios::app 添加到文件尾\x0d\x0a ios::ate 把文件标志放在末尾而非起始。\x0d\x0a ios::trunc 默认. 截断并覆写文件。\x0d\x0a ios::nocreate 文件不存在也不创建。\x0d\x0a ios::noreplace 文件存在则失败。\x0d\x0aofstream使用方式类似,读取一行数据可以使用getline(buf, count), 类型于fgets()。fstream类还提供一个很多其它方法,如fclose()为关闭文件,eof()用于检测状态是否已经到了文件末尾。\x0d\x0a这里还有两个类似于上述的fread()和fwrite()函数,是read(), write(),功能和用法类似类似,例如:\x0d\x0a output_file.write((c***t char*)stu, 3 * sizeof(struct student_t));\x0d\x0a input_file.read((char*)stus, 3 * sizeof(struct student_t));\x0d\x0a注意,这里也需要使用二进制模式打开,否则read的时候最后的上些数据读不完全。调用上面两个函数后可以使用bad()来检测文件流对象是否错误,例如,if(input_file.bad()){printf("error when read file\n"); return;},最后input_file.close()即可。\x0d\x0a 最后,C/C++文件的操作并不复杂,多使用几次便可熟练掌握,需要注意的就是文件的打开方式,和当用同一个文件指针进行又读又写时,注意文件指针位置的移动。
关于matlab fscanf函数
matlab中的fscanf的用法如下:
a=fscanf(fid,format)
[a,
count]=fscanf(fid,format,size)
[a,
count]=fscanf(fid,format,size)
个人感觉用的最多的是
这样的形式:
data
=
fscanf(fid,format,size);
其中data为读取内容的数组,大小由size决定。size是一个[m
n]的向量,
m为行,n为列(注意,这里读取的顺序是按列优先排列的,不明白的话可以看
下面的例子),若n取inf表示读到文件末尾。fid为fopen打开文件的返回值,
format是格式化参数(像printf、scanf)。
举个小例子:
路径+文件名:d:\moon.txt
内容:13,1,3.4
3,2.1,23
1,12,2
4,5.4,6
现在为了读取moon中的数据存在一个数组里,可以用如下方法
fid=fopen(’d:\moon.txt’);
data_1
=fscanf(fid,’%f,%f,%f’,)
;%这里得用单引号
data_2
=fscanf(fid,’%f,%f,%f’,)
data_3
=fscanf(fid,’%f,%f,%f’,)
fclose(fid);
这时data_1,
data_2,
data_3分别是一个数组,其内容分别如下:
data_1
13
3
1
4
1
2.1
12
5.4
4
23
2
6
data_2
13
3.4
2.1
1
2
4
1
3
23
12
4,5
6
data_3
13
3.4
1
3
由此可见,读数据的时候,从**数组的水平方向,一个一个读取,传递给新的数组时,从列方向优先。
open函数用法
C语言中open函数
作用:打开和创建文件。
简述:
#include 《fcntl.h》
int open(c***t char *pathname, int oflag, ... /* mode_t mode */);
返回值:成功则返回文件描述符,否则返回 -1
对于 open 函数来说,第三个参数(...)仅当创建新文件时(即使用了O_CREAT 时)才使用,用于指定文件的访问权限位(access permission bits)。pathname 是待打开/创建文件的路径名(如 C:/cpp/a.cpp);oflag 用于指定文件的打开/创建模式,这个参数可由以下常量(定义于 fcntl.h)通过逻辑或构成。
O_RDONLY 只读模式
O_WRONLY 只写模式
O_RDWR 读写模式
打开/创建文件时,至少得使用上述三个常量中的一个。以下常量是选用的:
O_APPEND 每次写操作都写入文件的末尾
O_CREAT 如果指定文件不存在,则创建这个文件
O_EXCL 如果要创建的文件已存在,则返回 -1,并且修改 errno 的值
O_TRUNC 如果文件存在,并且以只写/读写方式打开,则清空文件全部内容(即将其长度截短为0)
O_NOCTTY 如果路径名指向终端设备,不要把这个设备用作控制终端。
O_NONBLOCK 如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I/O
设置为非阻塞模式
(nonblocking mode)
以下三个常量同样是选用的,它们用于同步输入输出
O_DSYNC 等待物理 I/O 结束后再 write。在不影响读取新写入的数据的
前提下,不等待文件属性更新。
O_RSYNC read 等待所有写入同一区域的写操作完成后再进行
O_SYNC 等待物理 I/O 结束后再 write,包括更新文件属性的 I/O
open 返回的文件描述符一定是最小的未被使用的描述符。
如果 NAME_MAX(文件名最大长度,不包括’\0’)是 14,而我们想在当前目录下创建文件名长度超过 14 字节的文件,早期的 System V 系统(如 SVR2)会截断超出部分,只保留前 14 个字节;而由 BSD 衍生的(BSD-derived)系统会返回错误信息,并且把 errno 置为 ENAMETOOLONG。
POSIX.1 引入常量 _POSIX_NO_TRUNC 用于决定是否截断长文件名/长路径名。如果_POSIX_NO_TRUNC 设定为禁止截断,并且路径名长度超过 PATH_MAX(包括 ’\0’),或者组成路径名的任意文件名长度超过 NAME_MAX,则返回错误信息,并且把 errno 置为 ENAMETOOLONG。
本文相关文章:
excel函数应用500例下载(EXCEL函数公式 与应用)
2026年3月28日 01:40
更多文章:
large函数加条件(表格,满足条件的单元格求和设置上限值,怎么使用函数)
2026年4月1日 06:00
phpstorm使用教程手册(thinkstorm插件怎么用在phpstorm中使用)
2026年4月1日 04:40
js文件上传fileupload(怎样用JS控制文件上传时FILE控件内默认的文件类型)
2026年4月1日 04:00
linux如何进入gcc编译器(如何在Linux环境下进入C语言编程)
2026年4月1日 03:20







