鱼C论坛

 找回密码
 立即注册
查看: 2357|回复: 6

按需求写入文件~~【难啊。。】

[复制链接]
发表于 2015-12-25 11:45:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 阿狸爱吃鱼 于 2015-12-27 10:18 编辑

比如 现在有一个字典存的是
dict1 = {4:"abc",8:"fff",05:""}
4,8,05分别代表的是  写入文件的时候,前4位,然后接下来的8位,接下来5位

"abc" "fff"  ""  分别代表那几个字节区间需要存的内容  
如果存的内容,位数不够,补充空格
05表示从前面开始补充空格

我想把这个字典里的内容按顺序写在一个文件里面
怎么做呢。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-25 16:44:36 | 显示全部楼层
字典是无序集合,要想有序需要用有序集合(列表,元组)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-26 17:22:19 | 显示全部楼层
hldh214 发表于 2015-12-25 16:44
字典是无序集合,要想有序需要用有序集合(列表,元组)

恩啊。。。那样映射关系的话,,就需要用两个列表 或者  两个元组了
其实重点是 我想 让 内容能 按照 几位几位那样输入 并且能随意前后补充空格
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-26 18:50:25 | 显示全部楼层
阿狸爱吃鱼 发表于 2015-12-26 17:22
恩啊。。。那样映射关系的话,,就需要用两个列表 或者  两个元组了
其实重点是 我想 让 内容能 按照 几 ...

可以专门写一个检测内容是否满足长度的方法,每次写入的时候调用即可~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-26 23:04:50 | 显示全部楼层
hldh214 发表于 2015-12-26 18:50
可以专门写一个检测内容是否满足长度的方法,每次写入的时候调用即可~

>>> file_form  = ['09','010','14','08']
>>> file_final = ['abc= ', 'abc', 'efd=', 'aaa']
>>> i =0
>>> file_f = open('F:\\Python_scripts\\test.txt','w')
>>> while i < len(file_form):
        if file_form[i][:1] == 0:
                num = int(file_form[i][1:])
                print("num", num)
                if len(file_final) == num:
                        file_f.write(file_final[i])
                        print("file_str", file_str)
                elif len(file_final) < num:
                        zero_num = num - len(file_final)
                        print("zero_num",zero_num)
                        file_str = file_final[i].rjust(zero_num)
                        print("file_str",file_str)
                        file_f.write(file_str)
                       
                else:
                        print("wrong")
                i +=1
        else:
                num = int(file_form[i])
                if len(file_final) == num:
                        file_f.write(file_final[i])
                        print(file_str)
                elif len(file_final) < num:
                        zero_num = num - len(file_final)
                        file_str = file_final[i].ljust(zero_num)
                        file_f.write(file_str)
                        print(file_str)
                else:
                        print("wrong")
                i +=1
                continue


这样出来的结果

5
abc=
6
abc   
10
efd=      
4
aaa

并不是我想要的。。。。
可是我不知道我哪儿错了。。。。><
能帮忙麻烦 check check吗
谢谢~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-26 23:05:52 | 显示全部楼层
本帖最后由 阿狸爱吃鱼 于 2015-12-27 10:18 编辑
阿狸爱吃鱼 发表于 2015-12-26 23:04
>>> file_form  = ['09','010','14','08']
>>> file_final = ['abc= ', 'abc', 'efd=', 'aaa']
>>> i = ...


哈哈
我搞定了。。。
我傻了。。。。
忘记在 最开始
if int(file_form[i][:1]) == 0:
这儿 加个int了~~~
哈哈~~~

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
hldh214 + 1 + 1 加油~~~

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-27 11:48:32 | 显示全部楼层
来转转  看看大牛都在干什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-18 23:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表