本文整理匯總了Python中zim.fs.File.read方法的典型用法代碼示例。如果您正苦於以下問題:Python File.read方法的具體用法?Python File.read怎麽用?Python File.read使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類zim.fs.File
的用法示例。
在下文中一共展示了File.read方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: testFS
# 需要導入模塊: from zim.fs import File [as 別名]
# 或者: from zim.fs.File import read [as 別名]
def testFS(self):
'''Test async FS operations'''
self.path = self.create_tmp_dir('testFS')+'/file.txt'
file = File(self.path)
op1 = file.write_async('foo bar 1\n')
op2 = file.write_async('foo bar 2\n')
op1.wait()
op2.wait()
self.assertEqual(file.read(), 'foo bar 2\n')
示例2: ConfigFile
# 需要導入模塊: from zim.fs import File [as 別名]
# 或者: from zim.fs.File import read [as 別名]
class ConfigFile(object):
'''Container object for a config file
Maps to a "base" file in the home folder, used to write new values,
and one or more default files, e.g. in C{/usr/share/zim}, which
are the fallback to get default values
@ivar file: the underlying file object for the base config file
in the home folder
@note: this class implement similar API to the L{File} class but
is explicitly not a sub-class of L{File} because config files should
typically not be moved, renamed, etc. It just implements the reading
and writing methods.
'''
def __init__(self, path, file=None):
'''Constructor
@param path: either basename as string or tuple with relative path,
is resolved relative to the default config dir for zim.
@param file: optional argument for some special case to
override the base file in the home folder.
'''
if isinstance(path, basestring):
path = (path,)
self._path = tuple(path)
if file:
self.file = file
else:
self.file = File((XDG_CONFIG_HOME, 'zim') + self._path)
def __repr__(self):
return '<%s: %s>' % (self.__class__.__name__, self.file.path)
def __eq__(self, other):
return isinstance(other, ConfigFile) \
and other._path == self._path \
and other.file == self.file
@property
def basename(self):
return self.file.basename
def default_files(self):
'''Generator that yields default config files (read-only) to
use instead of the standard file when it is still empty.
Typically only the first one is used.
'''
for dir in config_dirs():
default = dir.file(self._path)
if default.exists():
yield default
def touch(self):
'''Ensure the custom file in the home folder exists. Either by
copying a default config file, or touching an empty file.
Intended to be called before trying to edit the file with an
external editor.
'''
if not self.file.exists():
for file in self.default_files():
file.copyto(self.file)
break
else:
self.file.touch() # create empty file
def read(self, fail=False):
'''Read the base file or first default file
@param fail: if C{True} a L{FileNotFoundError} error is raised
when neither the base file or a default file are found. If
C{False} it will return C{''} for a non-existing file.
@returns: file content as a string
'''
try:
return self.file.read()
except FileNotFoundError:
for file in self.default_files():
return file.read()
else:
if fail:
raise
else:
return ''
def readlines(self, fail=False):
'''Read the base file or first default file
@param fail: if C{True} a L{FileNotFoundError} error is raised
when neither the base file or a default file are found. If
C{False} it will return C{[]} for a non-existing file.
@returns: file content as a list of lines
'''
try:
return self.file.readlines()
except FileNotFoundError:
for file in self.default_files():
return file.readlines()
else:
if fail:
raise
else:
#.........這裏部分代碼省略.........
示例3: runTest
# 需要導入模塊: from zim.fs import File [as 別名]
# 或者: from zim.fs.File import read [as 別名]
def runTest(self):
plugins = PluginManager.list_installed_plugins()
self.assertTrue(len(plugins) > 10)
self.assertTrue('spell' in plugins)
self.assertTrue('linkmap' in plugins)
pluginindex = File('data/manual/Plugins.txt').read()
seen = {
'name': set(),
'description': set(),
'help': set(),
}
for name in plugins:
#~ print '>>', name
klass = PluginManager.get_plugin_class(name)
# test plugin info
for key in ('name', 'description', 'author'):
self.assertTrue(
klass.plugin_info.get(key),
'Plugin %s misses info field \'%s\'' % (name, key)
)
for key in ('name', 'description', 'help'):
self.assertIn(key, klass.plugin_info, 'Plugin %s missing "%s"' % (name, key))
value = klass.plugin_info[key]
self.assertFalse(
value in seen[key],
'Value for \'%s\' in %s seen before - copy-paste error ?' % (key, name)
)
seen[key].add(value)
# test manual page present and at least documents preferences
page = klass.plugin_info['help']
self.assertTrue(page.startswith('Plugins:'), 'Help page for %s not valid' % name)
rellink = "+%s" % page[8:]
self.assertIn(rellink, pluginindex, 'Missing links "%s" in manual/Plugins.txt' % rellink)
file = File('data/manual/' + page.replace(':', '/').replace(' ', '_') + '.txt')
self.assertTrue(file.exists(), 'Missing file: %s' % file)
manual = file.read()
for pref in klass.plugin_preferences:
label = pref[2]
if '\n' in label:
label, x = label.split('\n', 1)
label = label.rstrip(',')
self.assertIn(label, manual, 'Preference "%s" for %s plugin not documented in manual page' % (label, name))
# test dependencies data
dep = klass.check_dependencies()
self.assertTrue(isinstance(dep,tuple))
check, dep = dep
self.assertTrue(isinstance(check,bool))
self.assertTrue(isinstance(dep,list))
for i in range(len(dep)):
self.assertTrue(isinstance(dep[i],tuple))
self.assertTrue(isinstance(dep[i][0],str))
self.assertTrue(isinstance(dep[i][1],bool))
self.assertTrue(isinstance(dep[i][2],bool))