windows下记事本可以把文本文件保存成unicode格式,请问python如何直接把文本文件保存成unicode格式。
另外,如何把保存的文本文件设置成隐藏文件。
谢谢。
xichen 回复于:2005-09-09 19:59:44
选择utf-8编码,idle就可以将文件存为unicode
点文件的属性可以把文件设置为隐藏.
nbfan 回复于:2005-09-09 21:55:12
斑竹你真会开玩笑,我的意思是如何在程序里直接把文件设置成隐藏属性.
nbfan 回复于:2005-09-09 22:01:23
引用:原帖由 "xichen" 发表: 选择utf-8编码,idle就可以将文件存为unicode
点文件的属性可以把文件设置为隐藏.
请问你说的这个是在option下的configure里的general里的那里设置么?
如果是这样,那么我实验了,不行.
或者麻烦你说详细一点,谢谢。
xichen 回复于:2005-09-10 13:08:56
idle 里面在第一行加上
# -*- coding: utf-8 -*-
就可以了.
隐藏的问题
import os
os.system('attrib +h 文件名')
nbfan 回复于:2005-09-10 22:47:32
版主,你的办法不行。
下面是我的代码
# -*- coding: utf-8 -*-
import os,sys,string
def filename(dir):
namelist=[]
filelist=os.listdir(dir)
for i in filelist:
if i[-4:]==".jpg":
namelist.append(i[:-4])
return namelist
if __name__=="__main__":
file=open("config.txt","w")
name=filename(os.getcwd())
file.write("&pics="+string.join(name,"|")+"&"+"\n")
file.write("&names="+string.join(name,".txt|")+".txt&")
file.close()
wolfg 回复于:2005-09-10 22:49:36
你到底想实现什么目的?能否讲清楚
nbfan 回复于:2005-09-10 22:56:27
上面的代码把所有.pic格式的图片,做成flash能读取的文件。取名config.txt
因为本中有中文,必须存成unicode格式flash才能读取,否则乱码。
问题由此而来。
隐藏文件的方法多谢.(我怎么没想到。)
wolfg 回复于:2005-09-10 23:02:51
引用:原帖由 "nbfan" 发表: 上面的代码把所有.pic格式的图片,做成flash能读取的文件。取名config.txt
因为本中有中文,必须存成unicode格式flash才能读取,否则乱码。
问题由此而来。
隐藏文件的方法多谢.(我怎么没想到。)
try
import codecs
file = codecs.open("config.txt", "w", "utf-8")
xichen 回复于:2005-09-10 23:08:20
楼上的方法应该正确.
nbfan 回复于:2005-09-11 11:40:55
这个方法不行 .file.write()都写不了中文了。晕.
斑竹你实验没有/
wolfg 回复于:2005-09-11 20:09:25
引用:原帖由 "nbfan" 发表: 这个方法不行 .file.write()都写不了中文了。晕.
斑竹你实验没有/
你的代码怎么改的?有错误信息?出现什么现象?
你具体的情况我们无法了解,只能根据你的只言片语给你一些提示,如果不符合你的情况,也请你自己有些钻研的精神。。。
nbfan 回复于:2005-09-12 12:42:07
代码如下
# -*- coding: UTF-8 -*-
import os,sys,string,codecs
def filename(dir):
namelist=[]
filelist=os.listdir(dir)
for i in filelist:
if i[-4:]==".jpg":
namelist.append(i[:-4])
return namelist
if __name__=="__main__":
file=codecs.open("config.txt", "w", "utf-8")
name=filename(os.getcwd())
file.write("&pics="+string.join(name,"|")+"&"+"\n")
file.write("&names="+string.join(name,".txt|")+".txt&")
#os.system('attrib +h config.txt')
file.close()
错误信息
Traceback (most recent call last):
File "C:\Python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "D:\nbfan\MyDocuments\flash\触摸屏程序1\autoconfig.py", line 13, in ?
file.write("&pics="+string.join(name,"|")+"&"+"\n")
File "C:\Python24\lib\codecs.py", line 444, in write
return self.writer.write(data)
File "C:\Python24\lib\codecs.py", line 178, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xca in position 8: ordinal not in range(128)
请帮忙看看。
wolfg 回复于:2005-09-12 15:22:09
try
import os
import sys
import string
import codecs
def filename(dir):
namelist=[]
filelist=os.listdir(dir)
for i in filelist:
if i[-4:]==".jpg":
namelist.append(i[:-4])
return namelist
if __name__=="__main__":
o_file = open("config.txt", "w")
name = filename(os.getcwd())
o_file.write( codecs.BOM_UTF16 )
for i in name:
o_file.write(i.decode('gb2312').encode('utf16'))
o_file.close()
nbfan 回复于:2005-09-12 20:28:43
非常感谢wolfg 版主,中国关于python的问题我看也就在这里能找到答案。
import os
import sys
import string
import codecs
def filename(dir):
namelist=[]
filelist=os.listdir(dir)
for i in filelist:
if i[-4:]==".jpg":
namelist.append(i[:-4])
return namelist
if __name__=="__main__":
o_file = open("config.txt", "w")
name = filename(os.getcwd())
o_file.write( codecs.BOM_UTF16 )
o_file.write('&pics='.decode('gb2312').encode('utf16'))
for i in name:
o_file.write(i.decode('gb2312').encode('utf16'))
if i!=name[-1]:
o_file.write('|'.decode('ascII').encode('utf16'))
o_file.close()
改了一下满足自己的要求。
wolfg 回复于:2005-09-13 09:39:21
加了codecs.BOM_UTF16主要是为了满足你要求与windows的记事本一样,保存成unicode格式,用UltraEdit观察对比一下吧
http://evanjones.ca/python-utf8.html
|