文件内容为一个多层元组,遍历该元组,当全为数字时输出数字之和,全为字母输出字符串,
有数字有字母输出False,并将该内容写入到该文件的下一行中

# 方法一:

t1= ((1,2,3),("a","b","c"),("a",1,2))
import pickle
with open('D:\\a.txt', 'wb') as f:
pickle.dump(t1,f)

with open('D:\\a.txt', 'rb') as f1:
content = pickle.load(f1) # 用这个方法一参数的形式写入,然后读出来也是参数
tup = tuple(content)
result = []
def func(tup):
for i in tup:
if isinstance(i, tuple):
func(i)
else:
result.append(i)

list1 = list(filter(lambda x:type(x)==int, result))
list2 = list(filter(lambda x:type(x)==str, result))
if len(result) == len(list1):
print(True)
elif len(result) == len(list2):
print(False)
else:
with open('D:\\a.txt', 'a', encoding='utf-8') as f1:
f1.write(str(result))

# 方法2

#分别定义判断元组元素是否全部是数字、字母的函数

import string

def all_digit(arr):

for v in arr:

if not isinstance(v,int):

return False

return True

def all_letter(arr):

for v in arr:

if str(v) not in string.ascii_letters:

return False

return True

#读出文件内容并用eval函数获得原始元组

with open("e:\\python\\a.txt") as file_obj:

content = file_obj.readline()

content = eval(content) # 通过这个方法把读取的到的内容转换为元祖

#遍历元组中的元组,如果都是数字直接求和,并加入结果列表

#如果都是字母拼接成字符串后加入结果列表

#如果都不是False加入结果列表

result = []

for item in content:

if all_digit(item):#("a",1,2)返回False

result.append(sum(item))

elif all_letter(item):#("a",1,2)返回False

result.append("".join(item))

else:

result.append(False)

# print(result)

with open("e:\\python\\a.txt","a+") as file_obj:

file_obj.write("\n" + str(tuple(result)))

file_obj.seek(0,0)

print(file_obj.read())

最新文章

  1. JAVA中AJAX的使用
  2. CentOS6.x安装配置nginx
  3. sencha gridpanel 单元格编辑
  4. web开发必须知道的javascripat工具
  5. IDA*
  6. Docker —— 用于统一开发和部署的轻量级 Linux 容器【转】
  7. $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别(转)
  8. JS HTML 单引号与双引号
  9. mysql服务启动
  10. R的变量类型和常用函数
  11. OGEngine_2.x中BitmapFont加载后黑屏问题的解决办法
  12. ROS中使用Kinect摄像头和usb摄像头
  13. Spring -- <mvc:annotation-driven />
  14. svn版本备份和恢复注意事项
  15. css预处理器--sass学习($变量名)
  16. python之数据类型
  17. [zoj4046][树状数组求逆序(强化版)]
  18. PTA (Advanced Level) 1027 Colors in Mars
  19. boost单元测试框架
  20. 设置第三方的SMTP服务

热门文章

  1. LeetCode.12-整数转罗马数字符串(Integer to Roman)
  2. 用番茄工作法提升工作效率 (四)ToDoList的持续优化
  3. 【LeetCode】714、买卖股票的最佳时机含手续费
  4. ll按时间排序和查看目录下文件数
  5. WebMagic 抓取图片并保存至本地
  6. java遇到的笔试题
  7. redis内存满了怎么办?
  8. laravel5.5入门-安装和认证
  9. 基于Caffe训练AlexNet模型
  10. Python time strptime()方法 时间操作