Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,将整数写入';。txt';文件_Python_Performance_Pickle_Robustness - Fatal编程技术网

Python,将整数写入';。txt';文件

Python,将整数写入';。txt';文件,python,performance,pickle,robustness,Python,Performance,Pickle,Robustness,使用pickle函数是将整数写入文本文件的最快、最健壮的方法吗 以下是到目前为止我掌握的语法: import pickle pickle.dump(obj, file) 如果有更可靠的替代方案,请随时告诉我 我的用例是编写用户输入: n=int(input("Enter a number: ")) 是的,人类需要阅读它,也许还需要编辑它 文件中将有10个数字 Python可能需要稍后重新阅读它 我认为这样做更简单: number = 1337 with open('filename.t

使用pickle函数是将整数写入文本文件的最快、最健壮的方法吗

以下是到目前为止我掌握的语法:

import pickle

pickle.dump(obj, file)
如果有更可靠的替代方案,请随时告诉我

我的用例是编写用户输入:

n=int(input("Enter a number: "))
  • 是的,人类需要阅读它,也许还需要编辑它
  • 文件中将有10个数字
  • Python可能需要稍后重新阅读它

我认为这样做更简单:

number = 1337

with open('filename.txt', 'w') as f:
  f.write('%d' % number)

但这实际上取决于您的用例。

下面的代码会打开一段时间,并在其后面附加以下数字

def writeNums(*args):
with open('f.txt','a') as f:
    f.write('\n'.join([str(n) for n in args])+'\n')

writeNums(input("Enter a numer:"))

使用python 2,您还可以执行以下操作:

number = 1337

with open('filename.txt', 'w') as f:
  print >>f, number
我个人在不需要格式化时使用此选项。

Write 阅读
我刚刚遇到了一个类似的问题。 我使用了一种简单的方法,将整数保存在变量中,并将变量作为字符串写入文件。如果需要添加更多变量,可以始终使用“a+”而不是“w”进行追加,而不是写入

f = open("sample.txt", "w")
integer = 10
f.write(str(integer))
f.close()


稍后,您可以使用float读取文件,并且不会抛出错误

您的用例是什么?哦,很抱歉没有提供详细信息,但我用它将一个整数(userinput)写入一个.txt文件。您的问题仍然不清楚。如何使用该文件?如果您的程序需要稍后读取文件并检索数字,pickle可能是合适的。主要问题是:人类是否有可能需要阅读此文件?编辑它?非python程序可能想要读取它?编辑它?文件中将包含多少数据?只需要一个号码吗?很多数字?我真的看不出速度有什么不同。这段代码有一种很传统的感觉。在新代码中通常避免使用旧式字符串格式,文件应使用。@Lattyware打开经过多次辩论后,我得出结论,旧式字符串格式是一种风格选择,尽管
.format
具有更大的功能,但如果人们愿意,仍然允许使用它<但应始终使用带有的代码!还有为什么首先要使用格式
str(number)
这不是“允许”与否的问题,只是样式的问题,正如您最初所说的,文档确实建议在新代码中避免使用旧样式的字符串格式,这实际上是关于这一问题的唯一样式建议。一般来说,当处理其他人可能最终阅读的任何代码时(我认为我所有的代码都是这样),最好遵循语言概述的约定,以提高可读性和熟悉度。是的,这里更好的选择是
str(number)
。@Lattyware尽管我很想这样,但Python社区仍然普遍接受它
f = open('output1.txt', 'r')
input1 = f.readline()
f.close()

print(input1)
f = open("sample.txt", "w")
integer = 10
f.write(str(integer))
f.close()