将文件转换为元组(Python 3.6)

时间:2018-01-30 17:15:34

标签: python

我正在开发一个可以读取任何类型文件并编辑它的程序。我已经编写了大部分程序,但我无法弄清楚如何以某种方式打开文件。

我需要的是一段代码,它接受一个文件并返回一个大元组进行操作。现在,我知道这已经完成了,但是这需要在 binary 中打开它,最好是0到255之间的整数元组。

例如: 包含以下内容的文件:

testing

不应该返回

("t","e","s","t","i","n","g")

它应该返回:

(116, 101, 115, 116, 105, 110, 103)

("测试"的ASCII编码)

我确信这可以做到,但我在让Python达成一致方面遇到了麻烦。任何帮助表示赞赏。谢谢!

*编辑:我希望在30秒内回复

3 个答案:

答案 0 :(得分:1)

只需在rb(读取字节)模式下打开,调用read()方法并转换为tuple

>>> tuple(open('f.txt', 'rb').read())
(116, 101, 115, 116, 105, 110, 103, 10)

其中f.txt的内容为"testing"

请注意,我们得到10,因为这是新行的代码。如果不需要,那么您可以将其分开:tuple(open('f.txt', 'rb').read()[:-1])

答案 1 :(得分:0)

只需像这样使用ord()

with open('some_file.txt', 'r') as f:
    result = tuple(ord(c) for c in tuple(f.read()))

<强>输出:

>>> with open('some_file.txt') as f:  # some_file.txt contains 'testing'
...   print(tuple(ord(c) for c in f.read()))
...
(116, 101, 115, 116, 105, 110, 103)

答案 2 :(得分:0)

df2$B=tolower(df2$B)给出ASCII码。 阅读整个文件,遍历每个章程并转换它:

ord()

实施例

tuple(ord(x) for x in open(file_name).read()) 的文件内容:

testing.txt

现在:

testing

剥离换行承租人的多行文件版本(以及引导尾随空格)。

>>> tuple(ord(x) for x in open('testing.txt').read()) (116, 101, 115, 116, 105, 110, 103) 的文件内容:

testing.txt

代码:

testing
testing

(116,101,115,116,105,110,103,116,101,115,116,105,110,103)