下面的代码正在读取一个名为"test.txt"的文件,该文件具有十六进制数字。下面的代码将这些十六进制数转换为十进制数。如何将十进制数写入文件而不是打印出来?
我的代码
file= 'test.txt'
with open(file) as fp:
line = fp.readline()
cnt = 1
while line:
i = int(line, 16)
print(str(i))
line = fp.readline()
cnt += 1
fp = open("file.txt", "w")
fp.write("your data")
应该工作。
实际上,内置的打印函数有一个文件关键字参数。您可以使用它将输出重定向到您选择的文件。
input_file = 'test.txt'
output_file = 'out.txt'
with open(input_file, 'r') as fp:
with open(output_file, 'w') as out_fp:
line = fp.readline()
cnt = 1
while line:
i = int(line, 16)
print(str(i), file=out_fp)
line = fp.readline()
cnt += 1
假设您test.txt
以下内容:
ff
10
然后out.txt
将包含:
255
16
从python 2.7或python 3.1开始,您甚至可以将这两者与语句结合使用
。...
with open(input_file, 'r') as fp, open(output_file, 'w') as out_fp:
...