我正在开发一个可以读取任何类型文件并编辑它的程序。我已经编写了大部分程序,但我无法弄清楚如何以某种方式打开文件。
我需要的是一段代码,它接受一个文件并返回一个大元组进行操作。现在,我知道这已经完成了,但是这需要在 binary 中打开它,最好是0到255之间的整数元组。
例如: 包含以下内容的文件:
testing
不应该返回
("t","e","s","t","i","n","g")
它应该返回:
(116, 101, 115, 116, 105, 110, 103)
("测试"的ASCII编码)
我确信这可以做到,但我在让Python达成一致方面遇到了麻烦。任何帮助表示赞赏。谢谢!
*编辑:我不希望在30秒内回复
答案 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)