并记住这个文件夹里面的绝对路径,我这是:
C:\Users\Administrator\Desktop\a
注意,此时文件夹a里面是空的。
打开python的编译器;
我用的python是Anaconda整合的python3的版本对应的编译器:spyder。
开端就写:
#!/usr/bin/python
这就像是一句开场白。
既然需要输出中文,那么就需要设定编码格式:
# -*- coding:utf-8 -*-
用python在文件夹a里面,建立一个b.txt文档:
file = open('C:/Users/Administrator/Desktop/a/b.txt','w')
'w'表示这个文档可以编辑,就是可读可写的意思。
在里面写文字:
file.write('你好,\n 世界。')
其中,\n是换行符。
整体代码如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
file = open('C:/Users/Administrator/Desktop/a/b.txt','w')
file.write('你好,\n 世界。')
而此时,a文件夹里面已经有了一个b.txt文档。
打开这个文档,可以看到内容如下图所示。
你的试验很详细。不过这个现象在linux下可能与windows下不一样。 通常改名或者是删除后文件就失效了。写入 *** 作也是无效的。
为了防止别人修改你的文件,通常在写入时,会加上一个锁。使用 *** 作系统特有的open方法才可以加锁。
可以使用portalocker,filelock 也可以使用posixfile,
os.open能不能成呢?按理可以。不过C语言里使用fopen没有这个功能,不过使用fcntl里的open可以。
你加了锁后,别人就不能写。文件处于占用状态。
另外 *** 作系统都有一种文件监控机制的消息通知。具体忘记了。在unix与windows都有这个功能。当别人程序修改了某个文件,你会立刻得到消息通知。
补充一些教程。os.open还是可以用的。
os.open(file, flags[, mode])
Parameters
file -- File name to be opened.
flags -- This is the following constants are options for the flags. They can be combined using the bitwise OR operator |. Some of them are not available on all platforms.
os.O_RDONLY:open for reading only
os.O_WRONLY:open for writing only
os.O_RDWR : open for reading and writing
os.O_NONBLOCK: do not block on open
os.O_APPEND:append on each write
os.O_CREAT: create file if it does not exist
os.O_TRUNC: truncate size to 0
os.O_EXCL: error if create and file exists
os.O_SHLOCK:atomically obtain a shared lock
os.O_EXLOCK:atomically obtain an exclusive lock
os.O_DIRECT:eliminate or reduce cache effects
os.O_FSYNC :synchronous writes
os.O_NOFOLLOW: do not follow symlinks
mode -- This work in similar way as it works for chmod() method.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)