Python dec到bin从文件到fi

2024-09-25 02:31:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python脚本有一些问题。我不太擅长这门语言,因为我在为我的朋友做一些事情。你知道吗

代码正在运行,但是输出是直接向上的。一些随机的东西而不是二进制数。你知道吗

代码如下:

def decToBin(n):
    wynik = ""
    while n > 0:
        wynik = str(n % 2) + wynik
        n = n / 2
    return wynik
print("zamiana liczb z systemu dziesietnego na binarny")
with open('program.txt', 'r') as plik: # otwieramy plik do odczytu
    for line in plik:
        x=int(line)
        with open('wyniki.txt', 'w') as plik1:
            plik1.write(decToBin(x))
        plik1.close()
plik.close()

下面是脚本的链接: repl.it

/编辑 好吧,算了吧,现在代码是这样的:

def decToBin(n):
wynik = ""
while n > 0:
    wynik = str(n % 2) + wynik
    n = int(n/2)
return wynik
plik1=open('wyniki.txt', 'w')
print("zamiana liczb z systemu dziesietnego na binarny")
with open('program.txt', 'r') as plik:  # otwieramy plik do odczytu
    for line in plik:
    x = int(line)
    plik1.write(decToBin(x)) 
    plik1.write("\n")  
plik1.close()

Tags: 代码txt脚本closedefaswithline
2条回答

第一件事:已经有一些东西正是你想做的,所以使用它是明智和有效的:

for char in text:
     bin(int(char))

我想,代码中的问题是您使用的是python3.x,其中整数之间的标准除法返回一个float(从[https://www.python.org/dev/peps/pep-0238/][PEP-0238]开始)。 这里有一个建议,你应该如何改变你的功能,使它工作。您可以对照内置的bin功能进行检查:

def decToBin(n):
    wynik = ""
    while n > 0:
        wynik = str(n % 2) + wynik
        n = n // 2
    return wynik

下面是一种针对文本示例的方法—Python不会像Java/C那样将字符转换为int。相反,您将获得序数值,然后将其转换为二进制数

def to_bin(c):
    bin_rep = bin(ord(c))
    print bin_rep   # for testing
    return bin_rep  # can be written to a file here or not...

text = "Hello there"
for each_char in text:
    to_bin(each_char)

我认为这种方法值得用一个输入文件的示例来尝试,然后重构为一个文件r/w

要对文件执行此操作,请尝试以下操作:

write_str = ""
with open('program.txt', 'r') as plik: # otwieramy plik do odczytu
    for line in plik:
        for each_char in line:
            write_str += str(to_bin(each_char))
with open('wyniki.txt', 'w') as plik1:
    plik1.write(write_str)
    plik1.close()
plik.close()

如果要反转字节的顺序,可以反转或更改整个文件 写入\u str+=str(到\u bin(每个\u字符)) 到 write_str=str(到\u bin(每个字符))+write_str

相关问题 更多 >