关于Python的join()方法问题
代码如下:
import os
import time
source = [r'e:\python',r'e:\temp']
#print(source)
print('源:')
for spath in source:
print(spath)
target_dir = r'e:\bak'
print('\n目的地:')
print(target_dir)
target = time.strftime('%Y%m%d%H%M%S') + '.rar'
zip_command = 'rar a %s\%s %s' % (target_dir,target,' '.join(source))
if os.system(zip_command) == 0:
print('Successful backup to',target)
else:
print('Backup FAILED')
问题:
请教一下,' '.join(source)的作用是将列表source中的项目转换为字符串,那么为什么要在这个方法前加上' '.?这是什么用途?为什么不能直接使用join(source)?我是初学者,麻烦各位不吝赐教,谢谢!
[解决办法]
因为他是str的一个方法,不是通用函数。即使有个通用函数也应该像join(source, sep)多个分隔符参数才会相当...
[解决办法]
对喔, str的一个方法
>>> s=''
>>> dir(s)
.......'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', ...
[解决办法]
你想直接用join也可以的啊,没问题:
import string
string.join(["aaaa", "bbb"])
或者:
from string import join
join(["aaaa", "bbb"])
[解决办法]
>>> source = [r'e:\python',r'e:\temp']
>>> ' '.join(source)
'e:\\python e:\\temp'
' '.join(source)的作用不只是将列表source中的项目转换为字符串,而是用空格将里面的元素链接起来
例如:
>>> a=['hello','world']
>>> '?'.join(a) //这里是用问号连接
'hello?world'
>>> ','.join(a) //这里用逗号连接
'hello,world'
>>> ';'.join(a) //这里用分号连接
'hello;world'
[解决办法]
join是字符串的一个成员函数
[解决办法]
join是string的一个成员函数,从你的代码来说,join是字符串对象' '的一个成员函数,' '.join(source)是调用了' '这个字符串对象的成函数,作用是使用' '符号把source连接成一个字符串。
[解决办法]
所以程序的一开始根本不用import string,因为join是字符串对象的一个方法,而不是普通函数。